【计算机类职业资格】二级C语言-241及答案解析.doc
《【计算机类职业资格】二级C语言-241及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-241及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-241 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.以下叙述中错误的是_。(分数:2.00)A.C 语言的可执行程序是由一系列机器指令构成的B.用 C 语言编写的源程序不能直接在计算机上运行C.通过编译得到的二进制目标程序需要连接才可以运行D.在没有安装 C 语言集成开发环境的机器上不能运行 C 源程序生成的.exe 文件2.以下叙述中正确的是_。(分数:2.00)A.C 程序中的注释只能出现在程序的开始位置和语句的后面B.C 程序书写格式严格,要求一行内只能写一个语句C.C 程序书写格式自由,一个语句可以写在多行上D
2、.用 C 语言编写的程序只能放在一个程序文件中3.C 语言源程序名的后缀是_。(分数:2.00)AexeBcCobjDcp4.以下叙述中正确的是_。(分数:2.00)A.C 语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C 语言规定必须用 main 作为主函数名,程序将从此开始执行,在此结束D.main 可作为用户标识符,用以命名任意一个函数作为主函数5.以下 C 语言用户标识符中,不合法的是_。(分数:2.00)A._1B.AaBcC.a_bD.a-b6.以下选项中不能用作 C 程序合法常量的是_。(分数:2.00)A.1,23
3、4B./123C.123D.“/x7G“7.有以下定义语句,编译时会出现编译错误的是_。(分数:2.00)A.char a=“a“;B.char a=“/n“;C.char a=“aa“;D.char a=“/x2d“;8.有以下程序: #includestdio.h main() char a30,b30; scanf(“%s“,a); gets(b); printf(“%s%s“,a,b); 程序运行时若输入: how are you? I am fine回车 则输出结果是_。(分数:2.00)A.how are you?I am fineB.howare you? I am fineC.
4、how are you? I am fineD.how are you?9.有以下程序: #includestdio.h main() int a1,a2; char c1,c2; scanf(“%d%c%d%c“, printf(“%d,%c,%d,%c“,a1,c1,a2,c2); 若想通过键盘输入,使得 a1 的值为 12,a2 的值为 34,c1 的值为字符 a,c2 的值为字符 b,程序输出结果是:12,a,34,b。正确的输入格式是(以下 代表空格,CR代表回车)_。 A12a34bCR B C12,a,34,bCR D (分数:2.00)A.B.C.D.10.有以下程序段: in
5、t j;float y;char name50; scanf(“%2d%f%s“, 当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为_。(分数:2.00)A.55566.0B.566.0C.7777.0D.566777.011.有以下程序: #includestdio.h main() char a,b,c,d; scanf(“%c%c“, c=getchar();d=getchar(); printf(“%c%c%c%c/n“,a,b,c,d); 当执行程序时,按下列方式输入数据(从第 1 列开始,CR代表回车,注意:回车也是一个字符): 12CR 34CR 则输出
6、结果是_。(分数:2.00)A.1234B.12C.123D.123412.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。(分数:2.00)A.ab+cB.ch=getchar()C.a=b+cD.a+13.已知字母 A 的 ASCII 码为 65,若变量 kk 为 char 型,以下不能正确判断出 kk 中的值为大写字母的表达式是_。(分数:2.00)A.kk=“A“ else k=c; else if(bc)k=b; else k=c; 以下选项中与上述 if 语句等价的语句是_。(分数:2.00)A.k=(ab)?a: b;k=(bc)?
7、b:c;B.k=(ab)?(bc)?a: b):(bc)?b:c);C.k=(ab)?(ac)?a:c):(bc)?b:c);D.k=(ab)?a:b;k=(ac)?a:c;16.若有表达式(w)?(-x):(+y),则其中与 w 等价的表达式是_。(分数:2.00)A.w=1B.w=0C.w!=1D.w!=017.有以下程序: #includestdio.h main() int a=1,b=2; while(a6)b+=a;a+=2;b%=10; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:2.00)A.5,11B.7,1C.7,11D.6,118.若变
8、量已正确定义,有以下程序段: i=0; do printf(“%d,“,i);while(i+); printf(“%d/n“,i); 其输出结果是_。(分数:2.00)A.0,0B.0,1C.1,1D.程序进入无限循环19.若 i 和 k 都是 int 类型变量,有以下 for 语句: for(i=0,k=-1;k=1;k+)printf(“*“); 下面关于语句执行情况的叙述中正确的是_。(分数:2.00)A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环20.有以下程序: #includestdio.h main() int i,j; for(i=3;i=1;i-
9、) for(j=1;j=2;j+)printf(“%d“,i+j); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.2 3 43 4 5B.4 3 25 4 3C.2 33 44 5D.4 53 42 321.以下叙述中错误的是_。(分数:2.00)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次就返回多个函数值C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式22.下面的函数调用语句中 func 函数的实参个数是_。 func
10、(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8);(分数:2.00)A.3B.4C.5D.823.有以下程序: #includestdio.h int fun(int x,int y) if(x=y)return(x); else return(x+y)/2); main() int a=4,b=5,c=6; printf(“%d/n“,fun(2*a,fun(b,c); 程序运行后的输出结果是_。(分数:2.00)A.3B.6C.8D.1224.设有如下函数定义: int fun(int k) if(k1)return 0; else if(k=1)return 1;
11、 else return fun(k-1)+1; 若执行调用语句:n=fun(3);,则函数 fun 总共被调用的次数是_。(分数:2.00)A.2B.3C.4D.525.在一个 C 源程序文件中所定义的全局变量,其作用域为_。(分数:2.00)A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和 extern 说明来决定范围26.有以下程序: #includestdio.h #includestring.h struct A int a; char b10; double c; void f(struct A t); main() struct A a=10
12、01,“ZhangDa“,1098.0; f(a);printf(“%d,%s,%6.1f/n“,a.a,a.b,a.c); void f(struct A t) t.a=1002;strcpy(t.b,“ChangRong“);t.c=1202.0; 程序运行后的输出结果是_。(分数:2.00)A.1001,ZhangDa,1098.0B.1002,ChangRong,1202.0C.1001,ChangRong,1098.0D.1002,ZhangDa,1202.027.有以下程序: #includestdio.h void fun(int*a,int n)/*fun 函数的功能是将 a
13、所指数组元素从大到小排序*/ int t,i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4,6); for(i=0;i10;i+)printf(“%d,“,ci); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,9,8,7,6,5,0,28.下列定义数组的语
14、句中,正确的是_。(分数:2.00)A.int N=10;int xN;B.#define N 10int xN;C.int x010;D.int x;29.若有定义语句:int m=5,4,3,2,1,i=4;,则下面对 m 数组元素的引用中错误的是_。(分数:2.00)A.m-iB.m2*2C.mm0D.mmi30.下面是有关 C 语言字符数组的描述,其中错误的是_。(分数:2.00)A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串31.若有定义语句:char s10=“1234567/0/0“
15、;,则 strlen(s)的值是_。(分数:2.00)A.7B.8C.9D.1032.有以下程序(strcat 函数用于连接两个字符串): #includestdio.h #includestring.h main() char a20=“ABCD/0EFG/0“,b=“IJK“; strcat(a,b);printf(“%s/n“,a); 程序运行后的输出结果是_。(分数:2.00)A.ABCDE/0FG/0IJKB.ABCDIJKC.IJKD.EFGIJK33.以下程序段完全正确的是_。(分数:2.00)A.int*p;scanf(“%d“,B.int*p;scanf(“%d“,p);C.
16、int k,*p=scanf(“%d“,p);D.int k,*p;*p=scanf(“%d“,p);34.设有定义语句 int(*f)(int);,则以下叙述正确的是_。(分数:2.00)A.f 是基类型为 int 的指针变量B.f 是指向函数的指针变量,该函数具有一个 int 类型的形参C.f 是指向 int 类型一维数组的指针变量D.f 是函数名,该函数的返回值是基类型为 int 类型的地址35.有以下程序: #includestdio.h main() int a=1,2,3,4,y,*p= -p; y=*p; printf(“y=%d/n“,y); 程序的运行结果是_。(分数:2.0
17、0)A.y=0B.y=1C.y=2D.y=336.设有定义:char p=“1“,“2“,“3“,*q=p;,以下不能计算出一个 char 型数据所占字节数的表达式是_。(分数:2.00)A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p0)37.下列语句组中正确的是_。(分数:2.00)A.char*s;s=“Olympic“;B.char s7;s=“Olympic“;C.char*s;s=“Olympic“;D.char s7;s=“Olympic“;38.有以下程序(字母 A 的 ASCII 码是 65): #includestdio.h v
18、oid fun(char*s) while(*s) if(*s%2) printf(“%c“,*s); s+; main() char a=“BYTE“; fun(a);printf(“); 程序运行后的输出结果是_。(分数:2.00)A.BYB.BTC.YTD.YE39.有以下程序: #includestdio.h void fun(char*a,char*b) while(*a=“*“) a+; while(*b=*a) b+;a+; main() char*s=“*a*b*,t80; fun(s,t); puts(t); 程序的运行结果是_。(分数:3.00)A.*a*bB.a*bC.a
19、*b*D.ab40.以下关于宏的叙述中正确的是_。(分数:3.00)A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制D.宏调用比函数调用耗费时间41.若程序中有宏定义行:#define N 100,则以下叙述中正确的是_。(分数:3.00)A.宏定义行中定义了标识符 N 的值为整数 100B.在编译程序对 C 源程序进行预处理时用 100 替换标识符 NC.对 C 源程序进行编译时用 100 替换标识符 ND.在运行时用 100 替换标识符 N42.有以下程序: #includestdio.h #define S(x)4*(x)*x+1 main()
20、int k=5,j=2; printf(“%d“,S(k+j); 程序运行后的输出结果是_。(分数:3.00)A.197B.143C.33D.2843.设有宏定义:#define IsDIV(k,n)(k%n=1)? 1:0),且变量 m 已正确定义并赋值,则宏调用:IsDIV(m,5)char h;T; 以下叙述中正确的是_。(分数:3.00)A.可用 S 定义结构体变量B.可用 T 定义结构体变量C.S 是 struct 类型的变量D.T 是 struct S 类型的变量45.以下关于 typedef 的叙述错误的是_。(分数:3.00)A.用 typedef 可以增加新类型B.typed
21、ef 只是将已存在的类型用一个新的名字来代表C.用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef 为类型说明一个新名,通常可以增加程序的可读性46.下面结构体的定义语句中,错误的是_。(分数:3.00)A.struct ordint x;int y;int z;struct ord a;B.struct ordint x;int y;int z;struct ord a;C.struct ordint x;int y;int z;a;D.structint x;int y;int z;a;二级 C 语言-241 答案解析(总分:100.00,做
22、题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.以下叙述中错误的是_。(分数:2.00)A.C 语言的可执行程序是由一系列机器指令构成的B.用 C 语言编写的源程序不能直接在计算机上运行C.通过编译得到的二进制目标程序需要连接才可以运行D.在没有安装 C 语言集成开发环境的机器上不能运行 C 源程序生成的.exe 文件 解析:解析 C 语言程序生成的.exe 文件是二进制的可执行文件,它不需要 C 语言集成开发环境的支持,可以直接运行。2.以下叙述中正确的是_。(分数:2.00)A.C 程序中的注释只能出现在程序的开始位置和语句的后面B.C 程序书写格式严格,要求一行内只
23、能写一个语句C.C 程序书写格式自由,一个语句可以写在多行上 D.用 C 语言编写的程序只能放在一个程序文件中解析:解析 在 C 语言中,注释可以加在程序中的任何位置,选项 A 错误。C 程序可以分模块写在不同的文件中,编译时再将其组合在一起,选项 D 错误。C 程序的书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。所以正确答案为选项 C。3.C 语言源程序名的后缀是_。(分数:2.00)AexeBc CobjDcp解析:解析 C 语言中,源程序文件的后缀为“.c”,经过编译生成后缀为“.obj”的目标文件,再经过与 C 语言提供的各种库函数连接,生成后缀为“.exe”的可
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 241 答案 解析 DOC
