【计算机类职业资格】二级C语言模拟639及答案解析.doc
《【计算机类职业资格】二级C语言模拟639及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言模拟639及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言模拟 639及答案解析(总分:129.00,做题时间:90 分钟)一、选择题(总题数:40,分数:61.00)1.以下选项中关于 C语言常量的叙述错误的是_。(分数:1.00)A.常量可分为数值型常量和非数值型常量B.常量分为整型常量、实型常量、字符常量和字符串常量C.经常被使用的变量可以定义成常量D.所谓常量,是指在程序运行过程中,其值不能被改变的量2.有以下程序: # include stdio.h void fun(char *c,int d) *c=*c+1,d=d+1; printf(“%c,%c“, *c,d); main() char b=“a“,a=“A“; fun
2、(b,a);printf(“%c,%c/n“,b,a); 程序运行后的输出结果是_。(分数:1.00)A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B3.若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*a后,a 的值是 _ 。(分数:1.00)A.-3B.9C.-12D.64.有以下程序 #include stdio.h main() FILE *fp; int a10=1,2,3,0,0,i; fp=topen(“d2.dat“,“wb“); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp
3、); fclose(fp); fp=fopen(“d2.dat“,“rb“); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+) printf(“%d,“,ai); 程序的运行结果是_。(分数:1.00)A.1,2,3,0,0,1,2,3,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,0,0,0,0,0,5.若变量已正确定义并赋值,符合 C语言语法的表达式是(分数:2.00)A.a=a+7;B.a=7+b+c,a+C.int(12.3%4)D.a=a+
4、7=c+b6.有以下程序: #includestdio.h int f(int n); main() int a=3,s; s=f(a);s=s+f(a); printf(“%d/n“,s); int f(int n) static int a=1; n+=a+; return n; 程序运行后的输出结果是_。(分数:1.00)A.9B.8C.7D.107.算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行顺序,以下说法正确的是_。(分数:1.00)A.先执行(d+e)得 r2,再执行 c*r2得 r3,再执行 a+b得 r1,最后执行 r1+r3得表达式最后结
5、果B.先执行 a+b得 r1,再执行(d+e)得 r2,再执行 c*r2得 r3,最后执行 r1+r3得表达式最后结果C.先执行(d+e)得 r2,再执行 c*r2得 r3,再执行 b+r3得 14,最后执行 a+r4得表达式最后结果D.先执行 a+b得 r1,再执行 r1+c得 r5,再执行(d+e)得 r2,最后执行 r5*r2得表达式最后结果8.下列选项中,能够满足“只要字符串 s1等于字符串 s2,则执行 ST”要求的是_。(分数:2.00)A.if(s1-s2=0)ST;B.if(s1=s2)ST;C.if(strcp)r(s1,s2)=1)ST;D.if(strcmp(s2,s1)
6、=0)ST;9.为了避免在嵌套的条件语句 if.else中产生二义性,C 语言规定:else 子句总是与_配对。(分数:2.50)A.缩排位置相同 ifB.前面最近的 ifC.其他后面后最近的 ifD.前面最近未配对的 if10.以下程序拟实现计算 s=1+2*2+3*3+n*n+,直到 s1000 为止。 #includestdio.h main() int s,n; s=1; n=1; do n=n+1;s=s+n*n; while(s1000); printf(“s=%d/n“,s); 程序运行后,不能得到正确结果,以下修改方案正确的是_。(分数:1.00)A.把 n=n+1;改为 n=
7、n*n;B.把 s=1;改为 s=0;C.把 n=1;改为 n=0;D.把 while(s1000);改为 while(s=1000);11.下列不属于软件工程的 3个要素的是 _ 。(分数:2.00)A.32具B.过程C.方法D.环境12.以下选项中关于程序模块化的叙述错误的是_。(分数:2.00)A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序13.若有以下定义和语句: #includ
8、estdio.h char s110=“abcd!“,*s2=“/n123/“; printf(“%d%d/n“,strlen(s1),strlen(s2); 则输出结果是_。(分数:1.00)A.10 7B.10 5C.5 5D.5 814.有以下程序: #includestdio.h main() int a,b; for(a=0;a3;a+) scanf(“%d“, switch(b) default:printf(“%d,“,b+1);continue; case 1:printf(“%d,“,b+1); case 2:pfintf(“%d,“,b+1);continue; 执行时输入
9、:1 2 3回车,则输出结果是_。(分数:1.00)A.2,2,3,4,4,4,B.2,3,4,C.2,2,3,4,D.2,3,3,4,5,6,15.有以下程序 #includestdio.h struct Sint n;int a20; voidf(struct S*p) int i,j,t; for(i=0;ip-n-1;i+) for(j=i+1;jp-n;j+) if(p-aip-aj)t=p-ai;p-ai=p-aj;p-aj=t; main() int i;struct S s=10,2,3,1,6,8,7,5,4,10,9; f( for(i=0;is-n;i+)printf(“
10、%d,“,s.ai); 程序运行后的输出结果是_。(分数:1.00)A.10,9,8,7,6,5,4,3,2,1,B.1,2,3,4,5,6,7,8,9,10,C.2,3,1,6,8,7,5,4,10,9,D.10,9.8,7,6,1,2,3,4,5,16.有以下程序: #include stdio.h #include string.h main() char str20=“One* World“, “One* Dream!“,* p=str1; printf(“% d,“, strlen(p); printf( “% s/n“, p); 程序运行后的输出结果是_。(分数:2.00)A.10
11、, One * Dream!B.9, One * Dream!C.9, One * WorldD.10, One * World17.以下关于指针的叙述正确是_。(分数:1.00)A.所有类型的指针变量所占内存的大小是一样的B.指针变量所占内存的大小与其类型有关,char 型指针变量只占 1个字节,double 型指针变量占 8个字节C.指针变量可直接指向任何类型的变量,而不会出现编译或运行错误D.指针变量既可以直接指向结构体,也可直接指向结构体中某个成员,而不会出现编译或运行错误18.以下程序的输出结果是_。 point(char*pt); main() char b4=“a“,“c“,“s
12、“,“f“),*pt=b; pt=point(pt); printf(“%c/n“,*pt); point(char*p) p+=3; return p; (分数:2.00)AsBcCfDa19.有下列程序段: int n, t=1, s=0; scanf(“%d“, dos=s+t; t=t-2; while(t!=n); 为使此程序段不陷入循环,从键盘输入的数据应该是_。(分数:2.50)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数20.以下选项中,能表示逻辑值“假”的是_。(分数:1.00)A.1B.0.000001C.0D.100.021.表示关系 abc 的 C语言表达式
13、为 _ 。(分数:1.00)A.(a=B) A; void f(A c) /*注意:c 是结构变量名 */ int j; c.b+=1; c.p+=2; main( ) int i; A a=1,2; f(a); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:2.00)A.2,4B.1,2C.1,4D.2,323.以下叙述中正确的是 _。(分数:1.00)A.用 C程序实现的算法必须要有输入和输出操作B.用 C程序实现的算法可以没有输出但必须要输入C.用 C程序实现的算法可以没有输入但必须要有输出D.用 C程序实现的算法可以既没有输入也没有输出24.有
14、以下程序 int b=2; int func(int*A) b+*a;return(B) ; main() int a2,res2; res+=rune( else return(x); main() int a=4,b=5,c=6; printf(“%d/n“,fun(2*a,fun(b,c); 程序的运行结果是_。(分数:2.00)A.6B.3C.8D.1226.下列定义数组的语句中,正确的是_。(分数:2.00)A.int N=10;int xN;B.#define N 10int xN;C.int x010;D.int x;27.有以下程序 #includestdio.h main()
15、 FILE *fp; int i, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2.dat“, “w+“); for(i=0; i6; i+)fprintf(fp, “%d/n“, ai); rewind(fp); for(i=0; i6; i+)fscanf(fp, “%d“, fclose(fp); for(i=0; i6; i+)printf(“%d,“, ai); 程序运行后的输出结果是_。(分数:2.00)A.6, 5, 4, 3, 2, 1,B.1, 2, 3, 4, 5, 6,C.4, 5, 6, 1, 2, 3,D.1, 2, 3, 3, 2, 1,28.以
16、下程序的输出结果是 #include int a33=1,2,3,4,5,6,7,8,9,*p;main( ) p=(int *)malloc(sized(int);f(p,a) ;printf(“%d/n“,*p);free(p);f(int *s,int p 3) *s=p11; A.1 B.4 C.7 D.5A B C D D解析 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc分配了一个 int型数据长度大小的内存,然后指针 p指向了这段内存,函数 f( )中对 p所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a的元素 5,所以输出结果为
17、 5。(分数:2.00)A.1B.4C.7D.529.以下选项中不合法的标识符是 _ 。(分数:1.00)A.printB.FORC. b=c; c=a; main( ) int a=10, b=20, c=30; fun(a,b,c); printf(“%d,%d,%d/n“,c,b,a); 程序运行后的输出结果是_。(分数:2.50)A.10,20,30B.30,20,10C.20,30,10D.0,0,031.以下叙述中正确的是_。(分数:1.00)A.简单 C语句必须以分号结束B.C程序中的每一行只能写一条语句C.C语言程序中的注释必须与语句写在同一行D.C语句必须在一行内写完32.软
18、件生命周期中,花费最多的阶段是_。(分数:2.50)A.详细设计B.软件编码C.软件测试D.软件维护33.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算以及 _ 。(分数:1.00)A.数据的存储结构B.计算方法C.数据映象D.逻辑存储34.若程序中有宏定义行: #define N 100 则以下叙述中正确的是_。(分数:1.00)A.在编译程序对 C源程序进行预处理时用 100替换标识符 NB.宏定义行中定义了标识符 N的值为整数 100C.上述宏定义行实现将 100赋给标识符 ND.在运行时用 100替换标识符 N35.下列程序的运行结果是_。 #inclu
19、destdio.h #define ADD(x) x+x main() int m=1, n=2, k=3; int s=ADD(m+n)*k; printf(“s=%d“, s); (分数:2.50)A.sum=18B.sum=10C.sum=9D.sum=2536.有以下程序 #includestdio.h main() int i,sum; for(i=1;i6;i+)sum+=i; printf(“%d/n“,sum); 程序运行后的输出结果是_。(分数:2.00)A.随机值B.0C.15D.1637.有以下程序: #include stdio.h main( ) chair ch=“
20、B“; while (ch“E“) printf(“%d“, ch-“A“); ch+; printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.123B.ABCC.abcD.01238.当变量 c的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:1.00)A.(c=2 for (;a;) b + = a; a - = + + c; printf(“%d,%d,%d/n“,a,b,c); 则程序的输出结果是_。(分数:2.50)A.1,14,3B.0,14,3C.0,18,3D.0.14,6二、程序填空题(总题数:1,分数:30.00)41.请补充 main()函
21、数,该函数的功能是:计算每个学生成绩的平均分,并把结果保存在数组 aver中。 例如,当 scoreNM=83.5, 82, 86, 65, 67, 80, 91.5, 84, 99, 95, 90.5, 95, 86, 95, 97时,3个学生的平均分为 76.7 89.9 92.7。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h #define N 3 #define M 5 void main() int i, j;
22、static float scoreNM=83.5, 82, 86, 65, 67, 80, 91.5, 84, 99, 95, 90.5, 95,86, 95, 97; float averN; system(“CLS“); for(i=0; iN; i+) 1; for(i=0; iN; i+) for(j=0; jM; j+) 2; averi/=M; for(i=0; i printf(“/nstudent%d/taverage=%5.1f, i+1, averi); averi=0 averi+=scoreij解析 由程序中可知,数组 aver中存放的是每个学生的平均成绩,其初始值应
23、该为 0,因此第一处填“averi=0”;求平均成绩的算法是先将各科成绩相加放在 aver中,再求其平均分,因此第二处填“averi+=scoreij”。(分数:30.00)三、程序修改题(总题数:1,分数:18.00)42.给定程序 MODI1.C中,函数 fun的功能是:判断输入的任何一个正整数 n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。 例如:当输入 100时,输出:100=9+10+11+12+13+14+15+16 100=18+19+20+21+22 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 模拟 639 答案 解析 DOC
