【计算机类职业资格】二级C语言模拟640及答案解析.doc
《【计算机类职业资格】二级C语言模拟640及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言模拟640及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言模拟 640及答案解析(总分:164.50,做题时间:90 分钟)一、选择题(总题数:40,分数:64.50)1.有以下程序: # include stdio.h main() FILE *fp; int k,n,i,a6=1,2,3,4,5,6; fp=fopen(“d2.dat“,“w“); for(i=0;16;i+) fprintf(fp,“%d/n“,ai); fclose(fp); fp(i=0;i3;i+) fscanf(fp,“%d%d“,k,n); fclose(fp); printf(“%d/n,%d/n,k,n); 程序运行后的输出结果是_。(分数:1.00)
2、A.1,2B.3,4C.5,6D.123,4562.有以下程序: #includestdio.h main() char ch; ch=“A“+“5“-“3“; printf(“%d, %c/n“, ch, ch); 程序的输出结果是(分数:2.00)A.67,CB.B,CC.C,DD.不确定的值3.若有以下程序: #include stdio.h main( ) int a=1,b=2,c=3,d=4; if(a=2) if(c= =3)|(d=-1) a=5; printf(“%d,%d,%d,%d/n“,a,b,c,d); 则程序的输出结果是_。(分数:2.50)A.2,2,2,4B.2
3、,1,2,-1C.5,1,2,-1D.1,2,3,44.对于循环队列,下列叙述中正确的是_。(分数:2.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针5.为了建立如图所示的存储结构(即每个结点含两个域,data 是数据域,next 是指向结点的指针域),则在处应填入的选项是_。(分数:2.00)A.struct link*next;B.link next;C.link*next;D.struct link next;6.以下叙述正确的是_。(分数:1.00)A.表达式 sizeof(FILE*)=sizeo
4、f(int*)的值为真B.文件指针的值是一个整数,它的值一定小于文件字节数C.文件指针的值是所指文件的当前读取位置D.使用 fscanf函数可以向任意类型的文件中写入任意数量的字符7.有以下程序: #includestdio.h main() int x, i; for(i=1; i=100; i+) x=i; if(+x%2=0) if(+x%3=0) if(+x%7=0) printf(“%d“, x); printf(“/n“); 程序的输出结果是(分数:2.00)A.28 70B.42 84C.26 68D.39 818.已知在 ASCII字符集中,数字 0的序号为 48,下列程序的输
5、出结果为_。 main() char a=“0“,b=“9“; printf(“%d,%c/n“,a,b) ; (分数:1.00)A.因输出格式不合法B.48,57C.0,9D.48,99.有以下程序: #include stdio.h #define N 2 #define M N+1 #define NUM (M+1) * M/2 main( ) printf(“%d/n“,NuM); 程序运行后的输出结果是_。(分数:5.00)A.4B.8C.9D.610.有以下程序: #includestdio.h void fun(double x,double *y,double *z) *y=*
6、y-1.0;*z=*z+x; main() double a=2.5,b=9.0,*pa,*pb; pa=pb= fun(b-a,pa,pb); printf(“%f/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.8.000000B.9.000000C.1.500000D.10.50000011.以下叙述中错误的是_。(分数:2.00)A.C语句必须以分号结束B.复合语句在语法上被看做一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句12.C语言中的简单数据类型有_。(分数:2.50)A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字
7、符型、逻辑型D.整型、实型、逻辑型、字符型13.若有定义:int a410;,则以下选项中对数组元素 aii引用错误的是_。(0=i4,0=i10)(分数:2.00)A.*(a00十 10*i+j)B.*(a+i)+jC.*(a+i)+j)D.*(ai+j)14.有以下程序 #includestdio.h main() int x; for(x=3;x6;x+) printf(x%2)?(“*%d“):(“#%d“),x); printf(“/n“); 程序的输出结果是_。(分数:2.50)A.*3#4*5B.#3*4#5C.*3*4#5D.*3#4#515.结构化程序由 3种基本结构组成,3
8、 种基本结构组成的算法( )。(分数:1.00)A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务16.以下能正确定义一维数组的选项是_。(分数:2.50)A.int a5=0, 1, 2. 3, 4, 5;B.char a=0, 1, 2. 3, 4, 5;C.char a=“A“, “B“, “C“;D.int a5=“0123“;17.C源程序中不能表示的数制是_。(分数:1.00)A.二进制B.八进制C.十进制D.十六进制18.下列程序的运行结果是_。 #includestdio.h void sub(int*s,int*y) s
9、tatic int m=4; *y=s0; m+; void main() int a=1,2,3,4,5,k; int x; printf(“/n“); for(k=0;k=4;k+) sub(a, printf(“%d,“,x); (分数:2.50)A.1,1,1,1,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,19.运行下列程序,若从键盘输入字母“a”,则输出结果是_。 char c; c=getchar(); if(c=“a“ else if(c=“g“ else printf(“input error!/n“); putchar(c);(分数:2.50
10、)AfBtCeDd20.交换两个变量的值,不允许用临时变量,应该使用_位运算符。(分数:2.00)A. int *m; int a=2,b=3,c=5; struct st s3=(101, main() struct st*p; p=s; 则以下表达式中值为 5的是_。(分数:2.00)A.(p+)-mB.*(p+)-mC.(*p).mD.*(+p)-m22.已定义变量 a为整型,则不能正确表示 9a14 的表达式是_。(分数:2.00)A.!(9a c=13d=10 printf(“%d,%d/n“,c,d); 程序的运行结果是_。(分数:1.00)A.5,1B.1,1C.18,1D.13
11、,127.若有定义:int a=0,b=0,c=0,d=0;,以下关于 C语言表达式:(+a +b)?+c:+d 执行顺序的叙述正确的是_。(分数:1.00)A.先执行+a,表达式+a 的值为 1;再执行+b,表达式+b 的值为 1,由此可确定(+a+b)值为 1,因此执行+cB.先执行+a,表达式+a 的值为 1,由此可确定(+a +b)值为 1,因此执行+cC.先执行+b,表达式+b 的值为 1;再执行+a,表达式+a 的值为 1,由此可确定(+a +b)值为 1,因此执行+cD.先执行+a,+b,+c,+d,使得 a,b,c,d 的值都为 1,由此可确定(+a +b)值为 1,因此执行+
12、c28.有如下程序段: for(i=0;i10;i+) if(i=5)break; 则循环结束后 i的值为_。(分数:1.00)A.1B.0C.5D.1029.以下叙述中正确的是_。(分数:1.00)A.在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上B.在使用 scanf函数输入整数或实数时,输入数据之间只能用空格来分隔C.在 printf函数中,各个输出项只能是变量D.使用 printf函数无法输出百分号“%”30.以下选项中叙述错误的是_。(分数:1.00)A.C程序函数中定义的自动变量,系统不自动赋确定的初值B.在 C程序的同一函数中,各复合语句内可以定义变量,
13、其作用域仅限本复合语句内C.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值D.C程序函数的形参不可以说明为 static型变量31.设 int a12,则执行完语句 a+a-a*a 后,a 的值是 _(分数:1.00)A.552B.264C.144D.-26432.有以下程序 #include stdio.h void fun1(char *P) char *q; q=p; while(*q!=“/0“) (*q)+; q+; main() char a=“Program“,*p; p= fun1(p); printf(“%s/n“,a); 程序执行后的输出结果是_。(分数:
14、1.00)A.ProhsbnB.PrphsbnC.ProgsbnD.Program33.下列关于 C语言文件的叙述中正确的是_。(分数:1.00)A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文件34.以下程序的输出结果是_。 #includestdio.h main() int a=4,b=3,c=2,d=1; printf(“%d“,ab?a:dc?d:b);(分数:2.00)A.1B.3C.2D.435.下列语句组中正确的是_。(分数:1.
15、50)A.char*s;s=“Olympic“;B.char s7;s=“Olympic“;C.char*s;s=“Olympic“;D.char s7;s=“Olympic“;36.有如下程序段: int k; for(k=2;k=0;) printf(“%d“,k-); 则 for循环体执行的次数是_。(分数:1.00)A.0次B.1次C.2次D.无限次37.以下叙述中正确的是_。(分数:1.00)A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该
16、文件然后再打开,才能读到第 1个数据D.C语言中的文件是流式文件,因此只能顺序存取数据38.有下列程序: #includestdio.h #includestring.h typedef struct stu char name9; char gender; int score; STU; void f(STU *a) STU c=“Sun“,“f,90,*d= a=d; strcpy(a-name,c.name); a-gender=c.gender; a-score=c.score: printf(“%s,%c,%d,“,a-name,a-gender,a-score); main() S
17、TU a=“Zhao“,“m“,85; f( printf(“%s,%c,%d“,a.name,a.gender,a.score); 程序执行后的输出结果是_。(分数:1.00)A.Zhao,m,85,Sun,f,90B.Sun,f,90,Sun,f,90C.Sun,f,90,Zhao,m,85D.Zhao,m,85,Zhao,m,8539.有如下程序段: int x=12; double y=3.141593; printf(“%d%8.6f“,x,y); 其输出结果是_。(分数:1.00)A.123.141593B.12 3.141593C.12,3.141593D.123.1415930
18、40.有以下程序: #includestdio.h main() int a=1,b =0; printf(“%d,“,b=a+b); printf(“%d/n“,a=2*b); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.1,0C.3,2D.0,0二、程序填空题(总题数:1,分数:30.00)41.给定程序中,函数 fun的功能是:将 a所指 43矩阵中第 k行的元素与第 0行元素交换。 例如,有下列矩阵: 若 k为 2,程序执行结果为: (分数:30.00)三、程序修改题(总题数:1,分数:30.00)42.给定程序 MODI1. C中函数 fun的功能是:逐个比较 p、q
19、所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到 c所指数组中,形成一个新的字符串。 例如,若主函数中 a字符串为:aBCDeFgH,主函数中 b字符串为:ABcd,则 c中的字符串应为:aBcdeFgH。 请改正程序中的错误,使它能得出正确结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 #include stdio. h #include string. h void fun(char *p, char *q, char *c) /*found*/ int k=1; /*found*/ while(*p!= *q) if(*p*q) ck=*
20、q; else ck=*p; if(*p) p+; if(*q) q+; k+; main( ) char a10=“aBCDeFgH“, b10=“ABcd“, c80=“/0“); fun(a, b, c); printf(“The string a: “); puts(a); printf(“The string b: “); puts(b); printf(“The result: “); puts(c); (分数:30.00)_四、程序设计题(总题数:1,分数:40.00)43.请编写一个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入“asd af aa z67“,则输
21、出为”asdafaaz67”。 注意:部分源程序在文件 PROG1.C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若千语句 #includestdio.h #includectype.h void fun(char*str) main() char str81; void NONO(); printf(“Input a string:“); gets(str); puts(str); fun(str); printf(“*str: %s/n“, str); NONO(); void NONO() /*请在此函数内打开文件,输入调试数据,调用 fu
22、n函数,输出数据,关闭文件。 */ char str81; int n=0; FILE*rf, *wf; rf=fopen(“in.dat“, “r“); wf=fopen(“out.dat“, “w“); while(n10) fgets(str, 80, rf); fun(str); fprintf(wf, “%s“, str); n+; fclose(rf); fclose(wf); (分数:40.00)_二级 C语言模拟 640答案解析(总分:164.50,做题时间:90 分钟)一、选择题(总题数:40,分数:64.50)1.有以下程序: # include stdio.h main(
23、) FILE *fp; int k,n,i,a6=1,2,3,4,5,6; fp=fopen(“d2.dat“,“w“); for(i=0;16;i+) fprintf(fp,“%d/n“,ai); fclose(fp); fp(i=0;i3;i+) fscanf(fp,“%d%d“,k,n); fclose(fp); printf(“%d/n,%d/n,k,n); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.3,4C.5,6 D.123,456解析:解析 此题是考查 fprintf和 fscanf,其中 fprintf是向文件输出,文件为 da2.dat文件,fscanf是向文
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 模拟 640 答案 解析 DOC
