



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海市高等学校计算机等级考试试卷 二级(C程序设计)(本试卷答卷时间120分钟)试题一(28分,每小题4分)解答下列各小题,把解答写在答卷纸的对应栏内。(1) 设有 int x=3, y=2, z=1; 分别写出下列表达式求值后变量x和y的值。(注:对每小题求值时,变量的初值都为x=3, y=2, z=1) y=(y=3, 2*x+) (x=5) | (y=6*x)(2) 写出下列程序的输出结果。 #include void main() int n; float x=2.7181;n=100*x;x=(int)(x*100+0.5)/100.0; printf (n=%d n, n); printf (x=%fn, x); (3) 写出变量x的绝对值小于20为真的C语言表达式。(4) 描述学生信息的结构变量定义为: struct student int no; /* 学号 */ char *name; /* 姓名 */ char sex; /* 性别 */ struct /* 出生年月日 */ int year; int month; int day; birth;struct student s;写出能完成结构体变量s 的部分成员赋值,使姓名为“Li_ping”,出生年份为1985的C语句。(5) 在语言中,函数random(int num)的功能是生成一个0到(num-1)之间的随机整数,请写出下列两个赋值语句的功能。 int m; float x;m= 50+ random(50);x= m+random(100)/100.0 ;(6) 用文字描述以下程序所完成的功能:#include void main() FILE *in,*out; char ch; in=fopen(“a.c”,r); out= fopen(“b.c”,w); while (!feof(in) /* 函数feof()用来检测是否到达文件尾,如到达文件尾则返回非0,否则返回0 */ ch= fgetc(in); fputc(ch); fclose(in);fclose(out);(7) 假定建立了以下链表结构,如下图所示:指针p、q分别指向如图所示的结点,写出将q所指结点从链表中删除并释放该结点的C语句试题二(12分,每小题6分)阅读下列程序, 把程序的输出结果写在答卷纸的对应栏内。(1)【程序2.1】写出程序的输出结果#include void main( ) int x=0,y=0,z; while(y6) x+= +y; printf(output1: %d %dn,x,y); for(y=1;y6;y+) x=y;printf(output2: %d %dn,x,y);for(y=1;y6; ) x=y+; z=+y; printf(output3: %d %d %dn,x,y,z);(2)【程序2.2】写出程序的输出结果 #include int f(int b,int n) int i,r; r=1; for(i=0;in;i+) r=r*bi; return r;void main() int x,a=1,2,3,4,5,6,7,8,9; x=f(a,3); printf(x=%dn,x);x=f(a+1,3); printf(x=%dn,x); 试题三 (12分,每小题6分)改错。下列每个程序中都有三个错误,按题中的功能要求,纠正错误,并以“将#XX”行改为“YYYY”的形式进行解答,把解答写在答卷纸的对应栏内。代码左边的#01、#02、是附加的行号。【程序3.1】下面程序的功能是统计一字符串中各个字母出现的次数,该字符串从键盘输入,统计时不区分大小写。对数字、空格及其他字符都不予统计。最后在屏幕上显示统计结果。例如字符串:“abcdefgh23 ABCDEF abc”的统计结果与输出格式为: a b c d e f g h i j k l m n o p q r s t u v w x y z 出现的次数为:;3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #01 #include #02 #include #03 void main( ) #04 #05 int i, a26;#06 char ch,str80,*p=str; #07 gets(&str); /* 获取字符串 */#08 for(i=0;i=A&ch=Z ?ch+a-A:ch; /* 大小写字符转换*/ #12 if(a=ch=z) ach-a+; #13 #14 for(i=0;i26;i+) printf(“%2c”, a+i); /* 输出26个字母 */ #15 printf(“出现的次数为:n”); #16 for(i=0;i26;i+) printf(“%2d”,ai); /* 输出各字母出现次数 */ #17 printf(“n”); #18 【程序3.2】以下程序求 e = 1 + 1/1! + 1/2! + + 1/n! + 的值,直到最后一项的值小于等于10-6为止;请改错。#1 #include #2 main()#3 double e, a; /* a为通项,e为和 */#4 int i=1;#5 e = 1.0;#6 a = 0.0; #7 do #8 a *= i; #9 e+= a;#10 i = i + 1;#11 while ( a=1e-6 ); /* 要求计算到最后一项的值小于等于10-6为止 */ #12 printf( %fn, e );#13 试题四 (18分, 每小题9分)按指定的要求编写程序段, 把解答写在答卷纸的对应栏内。(1)编写函数f(int n)用来统计正整数n的位数(例如,n=123时函数返回3)。(2)写出一个函数int lower_ave ( float s , int n , float *aver ),它能从存放学生分数的一维数组s中求出其平均分和低于平均分的学生人数;其中数组s 存放学生分数,参数n为学生人数,参数aver 是指向平均分的指针变量。(要求平均分通过指针参数传递,人数通过函数值返回。)试题五(15分,每个空格3分)阅读下列问题描述和相应的程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。【问题描述】以下程序输入10行字符串,要求按字典顺序从小到大排序。【程序5】#include #define N 10int biggerthan( char *str1, char *str2 ) /*若字符串str1大于 str2时,则返回1*/ for ( ; *str1 | *str2; (1) ) if ( *str1 *str2 )return (2) ; else if (*str1*str2)return 0 ;return 0; /* 两个字符串相等 */ void main()char lsN100;char *psN, *t;int i, j;for ( i = 0; i N; i+ )gets( lsi );psi = lsi;for ( i = 0; i N-1; i+ ) /* 冒泡法排序 */ for ( j = 0; j N-i-1; j+ )if ( biggerthan( (3) ) ) t = psj; (4) ; (5) ; for ( i = 0; i N; i+ ) printf( %s n,psi );试题六 (15分,每个空格3分)阅读下列问题描述和相应的C程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。【问题描述】下列程序的功能是:计算机给出10个不大于31的正整数让人猜,并根据猜中的情况统计总得分后输出。具体规则如下:(1) 计算机每给出一个要猜的数最多允许中5次,第一次猜对得10分,第二次猜对得8分,第三次猜对得6分,第四次猜对得4分,最后一次猜对得2分,否则不得分。(2) 若人猜的数太小,计算机给出提示“too small !”;若人猜的数太大,计算机给出提示“too large !”;若人猜对这个数,计算机给出提示“right !”, 并给出下一个数继续让人猜;若一个数已经猜了5次都猜错,计算机给出提示“out of time !”,也给出下一个数继续让人猜。直至猜完10个数。下面是人猜一个数的过程,有下划线的部分是人猜的数:(假设机器产生的随机数为9)请输入你猜测的数y= 16too large !请输入你猜测的数y= 4too small !请输入你猜测的数y= 9right ! (本题是第三次猜对,得6分)#include #include void main() int i, c, x, y, score, right; (1) ; /* 变量赋初值 */ for (i=1; i=10; i+) x=random(32); /* 随机产生一个不大于31的要猜的数 */ c=0; do c+; printf(n 请输入你猜测的数y= ); scanf(%d, &y); right=(y=x); /* 猜对时right为1,否则为0 */ if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人工智能技术应用工程师招聘面试指南及模拟题
- 2025年人工智能工程师招聘面试技巧与模拟题详解
- 2025年工业互联网SDN平台软件定义网络运维优化报告
- 2025年生鲜新零售行业供应链优化与冷链物流成本控制策略研究报告
- 高考模拟考试题及答案
- 2025贵州余庆县招聘10名城镇公益性岗位人员考前自测高频考点模拟试题及参考答案详解
- 2025黑龙江会计考试题及答案
- 2025国际会计学试题及答案
- 2025年新能源行业绿色制造工艺在太阳能热利用中的应用报告
- 2025年中国功能性动物饲料行业市场分析及投资价值评估前景预测报告
- 《拒绝沉迷手机远离“垃圾快乐”》班会课件
- 沉井顶管施工方案
- 锅炉设备更换技术方案
- 班次调度冲突解决
- 管理会计学 第10版 课件 第1、2章 管理会计概论、成本性态与变动成本法
- 领导科学之领导用人(经典)
- 大米先生管理制度
- 手术室仪器设备管理PPT
- 高中政治课程标准解读
- GB/T 42695-2023纺织品定量化学分析木棉与某些其他纤维的混合物
- YY/T 1617-2018血袋用聚氯乙烯压延薄膜
评论
0/150
提交评论