【计算机类职业资格】二级C语言笔试23及答案解析.doc
《【计算机类职业资格】二级C语言笔试23及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试23及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试 23及答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.若变量已正确定义并赋值,下面符合 C语言语法的表达式是(分数:1.00)A.m:=5B.c=b=a=lC.float 8%5D.x+5=y+22.数据处理的最小单位是(分数:1.00)A.数据B.数据元素C.数据项D.数据结构3.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数: 876 675 896 101 301 401 980 431 451 777 #includeconio.h #includestdio.h int fun(int *s,in
2、t t,int *k) int i; *k=0; for(i=0;it;i+) if(s*ksi)*k=i; return s*k; main() int a10=876,675,896,101,301,401,980,431,45l,777,k; clrscr(); fun(a,10,i+) p=strcat(p,ai); i=strlen(p); printf(“%d/n“,i); 则程序段的输出结果是(分数:1.00)A.18B.19C.20D.216.假定 int类型变量占用两个字节,有定义:int x10=0,2,4;,则数组 x在内存中占字节数是(分数:1.00)A.3B.6C.1
3、0D.207.下列关于复合语句和空语句的说法错误的是(分数:1.00)A.复合语句是由“”开头,由“”结尾的B.复合语句在语法上视为一条语句C.复合语句内,可以有执行语句,不可以有定义语句部分D.C程序中的所有语句都必须由一个分号作为结束8.以下程序有语法错误,有关错误原因的正确说法是 main() int G=5,k; void prt_char(); k=prt_char(G); (分数:1.00)A.语句 void prt_char();有错,它是函数调用语句,不能用 void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线9.有如下定义 str
4、uct person char name9;int age;struct person class10=“John“,17,“paul“,19,“Mary“,18,“Adam“,16,;根据上述定义,能输出字母 M的语句是(分数:1.00)A.printf(“%c/n“,class3.nam;B.printf(“%c/n“,class3.name1);C.printf(“%c/n“,class2.name1);D.printf(“%c/n“,class2.name0);10.若程序执行时的输入数据是“2473“,则下述程序的输出结果是 #includestdio.h void main() i
5、nt cs; while(cs=getchar()!=;/n) switch(cs-2) case 0 case 1:putchar(cs+4); case 2:putchar(cs+4); break; case 3:putchar(cs+3);default:putchar(cs+2);(分数:1.00)A.668977B.668966C.6677877D.668876611.一些重要的程序语言(如 C语言和 Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用(分数:1.00)A.栈B.堆C.数组D.链表12.已知如下定义,则 sizeof(a)的值是 struct i
6、nt i; char c; double a;a;(分数:1.00)A.8B.9C.10D.1113.若有定义:char*st=“how are you“;下列程序段中正确的是(分数:1.00)A.char a11,*p;strcpy(p=a+1,b=p5;则 b的值是(分数:1.00)A.5B.6C.9D.815.下面能正确进行字符串赋值操作的是(分数:1.00)A.char s5=“ABCDE“;B.char s5=A,B,C,D,E;C.char*s;s=“ABCDE“;D.char*s;char a;scanf(“%s“,i+) switch(i) case 0: case 3:a+=
7、2; case 1: case 2:a+=3; default:a+=5; printf(“%d/n“,a);(分数:1.00)A.31B.13C.10D.2025.数据库系统的核心是(分数:1.00)A.数据库B.数据库管理系统C.模拟模型D.软件工程26.现有如下程序段 #include“stdio.h“ main() int k30=12,324,45,6,768,98,21,34,453,456; int count=0,i=0; while(ki) if(ki%2=0|ki%5=0)count+; i+; printf(“%d,%d/n“,count,i); 则程序段的输出结果为(分
8、数:1.00)A.7,8B.8,8C.7,10D.8,1027.以下变量 x,y,z 均为 double类型且已正确赋值,不能正确表示数学式子 xyz的 C语言表达式是(分数:1.00)A.x/y*zB.x*(1/(y*)C.x/y*1/zD.x/y/z28.以下程序的运行结果为 #include“stdio.h“ main() int m,n; for(m=0,n=10;mn;m+=3,n-);printf(“%d,%d/n“,m,n);(分数:1.00)A.6,7B.7,6C.9,7D.7,929.当 k的值不为 0时,在下列选项中能够将 k的值赋给变量 m,n 的是(分数:1.00)A.
9、m=k=nB.(m= int *p=a; for(i=0;i4;i+)ai=*p; printf(“%d/n“,a2); 上面程序输出结果是(分数:1.00)A.6B.8C.4D.238.以下对结构体类型变量的定义中,不正确的是(分数:1.00)A.typedef struct aa int n; float m; AA; AA tdl;B.#define AA struct aa AA int n; float m; tdl;C.struct int n; float m; aa; struct aa tdl;D.struct int n; float m; tdl;39.以下程序的输出结果
10、是 int f() static int i=0; int s=1; s+=i;i+; return s; main() int i,a=0; for(i=0;i5;i+)a+=f(); printf(“%d/n“,a);(分数:1.00)A.20B.24C.25D.1540.若 w=l,x=2,y=3,z=4,则条件表达式 wx?w:yz? y:z 的值是(分数:1.00)A.4B.3C.2D.141.C语言中,能识别处理的文件为(分数:1.00)A.文本文件和数据块文件B.文本文件和二进制文件C.流文件和文本文件D.数据文件和二进制文件42.下列程序的输出结果是 #include“stdi
11、o.h“ #define M(x,y) x%y main() int a,m=12,n=100; a=M(n,m); printf(“%d/n“,a-);(分数:1.00)A.2B.3C.4D.543.下列程序的运行结果是 #include“stdio.h“ main() int x=-9,y=5,z=8; if(xy) if(y0)z=0; else z+=1; printf(“%d/n“,z);(分数:1.00)A.6B.7C.8D.944.软件工程的理论和技术性研究的内容主要包括软件开发技术和(分数:1.00)A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用45.下述
12、关于数据库系统的叙述中正确的是(分数:1.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据46.以下对 C语言函数的有关描述中,正确的是(分数:1.00)A.在 C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.函数必须有返回值,返回值类型不定47.下列关于 C语言的说法不正确的是(分数:1.00)A.C语言既具有高级语言的一切功能,也具有低级语言的一些功能B.C语言中的每一条执行语句都必须用分号结束,
13、分号不是 C语言的一部分,是语句之间的分隔符号C.注释可以出现在程序中任意合适的地方D.命令行后面不能加分号,命令行不是 C语言的语句48.索引属于(分数:1.00)A.模式B.内模式C.外模式D.概念模式49.现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是(分数:1.00)A.p=printf(“%d,%o,%x,%u/n“,a,a,a,a);(分数:2.00)填空项 1:_62.下述程序的输出结果是U 【12】 /U。 #includestdio.h int fun(int x) int p; if(x=0|x=1) return 3; else p=x-fun(x-2
14、); return p; void main() printf(“/n%d“,fun(9);(分数:2.00)填空项 1:_63.以下函数用来在 w数组中插入 x。n 所指向的存储单元中存放 w数组中字符个数。数组 w中的字符已按从小到大的顺序排列,插入后数组 w中的字符仍有序。请填空。 void fun(char*w,char x,int*n) int i, p; p=0; w*n=x; while(xwp)p+; for(i=*n;ip;i-)wi=U 【13】 /U;wp=x; + *n;(分数:2.00)填空项 1:_64.mystrlen函数的功能是计算 str所指字符串的长度,并作
15、为函数值返回。请填空。 int mystrlen(char*str) int i; for(i=0;U 【14】 /U!=/0;i+); return(i);(分数:2.00)填空项 1:_65.下面程序的输出结果是U 【15】 /U。 long fun5(int n) long s; if(n=1)|(n=2) s=2; else s=n+fun5(n-1); return(s); main() long x; x=fun5(4); printf(“%ld/n“,x);(分数:2.00)填空项 1:_66.阅读下列程序,则程序的输出结果为U 【16】 /U。 #include“stdio.h
16、“ struct ty int data; char c; main() struct ty a=30,x; fun(a); printf(“%d%c“,a.data,a.c); fun(struct ty b) b.data=20; b.c=y;(分数:2.00)填空项 1:_67.下面程序将二维数 a的行和列元素互换后存放另一个二维数组 b中。请填空。 main() int a 23=1,2,3,4,5,6; int b32, i,j; printf(“array a“/n“); for(i=0;i=1;i+) for(j=0;U 【17】 /U;j+) printf(“%5d“,aij)
17、; U【18】 /U; printf(“/n“); printf(“array b:/n“); for(i=0;U 【19】 /U;i+) for(j=0;j=1;j+) printf(“%5d“,bij); printf(“/n“);(分数:2.00)填空项 1:_68.设有以下定义和语句,则*(*(p+2)+1)的值为U 【20】 /U。 int a32=10,20,30,40,50,60,(*p)2; p=a;(分数:2.00)填空项 1:_二级 C语言笔试 23答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.若变量已正确定义并赋值
18、,下面符合 C语言语法的表达式是(分数:1.00)A.m:=5B.c=b=a=l C.float 8%5D.x+5=y+2解析:解析 选项 A)中的赋值方法为 Pascal语言赋值格式;C 语言中赋值直接为“=”,无冒号;选项D)中“x+5=y+2”赋值格式错误,赋值号左边不可以出现常量,也不可以同时出现两个变量。选项 C)应改为(float)8%32.数据处理的最小单位是(分数:1.00)A.数据B.数据元素C.数据项 D.数据结构解析:解析 数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。
19、故正确答案为选项 C)。3.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数: 876 675 896 101 301 401 980 431 451 777 #includeconio.h #includestdio.h int fun(int *s,int t,int *k) int i; *k=0; for(i=0;it;i+) if(s*ksi)*k=i; return s*k; main() int a10=876,675,896,101,301,401,980,431,45l,777,k; clrscr(); fun(a,10,i+) p=strcat(p,ai); i
20、=strlen(p); printf(“%d/n“,i); 则程序段的输出结果是(分数:1.00)A.18B.19 C.20D.21解析:解析 字符串连接函数 strcat的调用形式如下:strcat(s1,s2)。此函数用来把 s2所指字符串的内容连接到 s1所指的字符串后面,并自动覆盖 s1串末尾的尾标,函数返回 s1的地址值。6.假定 int类型变量占用两个字节,有定义:int x10=0,2,4;,则数组 x在内存中占字节数是(分数:1.00)A.3B.6C.10D.20 解析:解析 x 数组共有 10个元素,在花括弧内只提供 3个初值,这表示只给前面的 3个成员赋值,后7个元素的值为
21、 0,所以,一共有 20个字节。7.下列关于复合语句和空语句的说法错误的是(分数:1.00)A.复合语句是由“”开头,由“”结尾的B.复合语句在语法上视为一条语句C.复合语句内,可以有执行语句,不可以有定义语句部分 D.C程序中的所有语句都必须由一个分号作为结束解析:解析 复合语句内,不仅可以有执行语句,而且还可以有定义语句部分。定义语句应该出现在可执行语句前面。8.以下程序有语法错误,有关错误原因的正确说法是 main() int G=5,k; void prt_char(); k=prt_char(G); (分数:1.00)A.语句 void prt_char();有错,它是函数调用语句,
22、不能用 void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线解析:解析 在 C语言中,对于返回值是其他类型的函数,若把函数定义放在调用之后,应该在调用之前对函数进行说明,或称为函数原型说明。函数说明句中的类型必须与函数返回类型一致,函数说明可以是一条独立的语句,也可以与普通变量一起出现在同一个语句中。对于函数值为整型的函数的说明,prt_char中定义时是 void类型,那天返回值与 k=prt_char();矛盾。 所以本题的错误之处在于“函数说明和函数调用语句之间有矛盾。”9.有如下定义 struct person char name9;in
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 23 答案 解析 DOC
