C程序设计考试题A_第1页
C程序设计考试题A_第2页
C程序设计考试题A_第3页
C程序设计考试题A_第4页
C程序设计考试题A_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计考试题A注意事项:1. 答题前,请先在试卷和机读卡上对应位置用钢笔准确清楚的填写上本人姓名和学号,机读卡的科目栏里填写年级和专业的简称,并用2B铅笔填涂学号(必须填在前8列,剩最右边的一列不填涂);2. 试卷答案必须用2B铅笔在机读卡上按对应题号准确、清楚涂写,答在试卷上无效;3. 本试卷共74个小题,机读卡上按【1】【80】的编号顺序涂写。【1】【60】每题1分,【61】【80】每题2分,共100分。1 在C语言中,要求参加运算的数必须是整数的运算符是【1】(A)/(B)*(C)%(D)=2 以下不正确的说法是【2】(A)全局变量、静态变量的初值是在编译时指定的(B)静态数值型

2、变量如果没有指定初值,则其初值为0(C)局部变量如果没有指定初值,则其初值不确定(D)函数中的静态变量在函数每次调用时,都会重新赋初值3 已知:int a =1,2,3,4,x,*pt=&a1; 则执行语句“x=(*-pt)+;”之后,变量x的值为【3】(A)1(B)2(C)3(D)44 已知:int x,*p=&x; 则下列输入输出x值的函数调用中错误的是【4】(A)scanf(“%d”,&x);(B)scanf(“%d”,p);(C)printf(“%d”,x);(D)printf(“%d”,p);5 在说明一个结构体变量时系统分配给它的存储空间是【5】(A)该结构体中第一个成员所需的存储

3、空间(B)该结构体中最后一个成员所需的存储空间(C)该结构体中占用最大存储空间的成员所需的存储空间(D)该结构体中所有成员所需的存储空间的总和6 C语言中函数返回值的类型是由【6】决定的(A)return语句中的表达式类型(B)调用该函数的主调函数类型(C)调用函数时临时(D)定义函数时所指定的函数类型7 设有数组定义:char array =China; 则数组 array所占的空间为【7】(A)4个字节(B)5个字节(C)6个字节(D)7个字节8 凡在函数中未指定存储类别的变量,其隐含的存储类别为【8】(A)自动(auto)(B)静态(static)(C)外部(extern)(D)寄存器(

4、extern)9 下列选项中是非法的C语言转义字符的是【9】(A)b(B)(C)037(D)xf10 下面说法正确的是【10】(A)函数定义可以嵌套,但函数调用不能嵌套 (B)函数定义不可以嵌套,但函数调用可以嵌套 (C)函数定义和调用均不能嵌套 (D)函数定义和调用均可以嵌套11 语句“static int i=10;”中,“i=10”的含义是【11】(A)将变量i初始化为10(B)只说明了一个静态变量(C)与“auto int i=10;”在功能上等价(D)给变量i赋值为1012 下述对C语言字符数组的描述中错误的是【12】(A)字符数组可以存放字符串(B)字符数组中的字符串可以进行整体输

5、入输出(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值(D)字符数组的下标从0开始13 有以下说明和语句,且0=i10,则下面【13】是对数组元素地址的正确表示int a =1,2,3,4,5,6,7,8,9,0,*p,i;p=a;(A)&(a+1)(B)a+(C)&p(D)&pi14 若有以下说明和语句,则p2-p1的值为【14】int a10,*p1,*p2;p1=a;p2=&a5;(A)5(B)6(C)10(D)错误的表达式15 已知:char s10,*p=s; 则在下列语句中,错误的语句是【15】(A)p=s+5;(B)s=p+5;(C)s2=p4;(D)p0=a;16

6、已知:char s10; int i=1; 则在下列引用数组元素的表达式中,错误的表示形式是【16】(A)si(B)*(s+i)(C)*s(D)*(s+)+i)17 已知:char a5,*p=a; 则正确的赋值语句是【17】(A)a=”abcd”;(B)*a=”abcd”;(C)p=”abcd”;(D)*p=”abcd”;18 设有int i; char c; float f; 以下结果为整数的表达式是【18】(A)i+f(B)i*c(C)c+f(D)i+c+f19 以下使变量i的运算结果为4的表达式是【19】(A)int i=0,j=0;(B)int i=1,j=0;(i=3,(j+)+i

7、); j=i=(i=3)*2);(C)int i=1,j=1;(D)int i=1,j=1; (j=1)?(i=1):(i=3); i+=j+=2;20 设char ch; 以下正确的赋值语句是【20】(A)ch=123;(B)ch=xff;(C)ch=08;(D)ch=;21 设n=10,i=4,则赋值运算n%=i+1执行后,n的值为【21】(A)0(B)3(C)2(D)122 逗号表达式(a=3*5,a*4),a+15运算后,a的值为【22】(A)60(B)30(C)15(D)9023 若有说明int x,y; 不能实现以下函数关系的程序段是【23】(A)if(x=0)else if(x=

8、0) y=0; if(x0) y=1;else y=1; else y=0; else y=-1;(C)y=0;(D)y=-1;if(x=0) if(x!=0) if(x0) y=1; if(x0) y=1;else y=-1;else y=0;24 设有说明int s2=0,1,*p=s; 则下列错误的C语句是【24】(A)s+=1; (B)p+=1;(C)*p+;(D)(*p)+;25 为了判断两个字符串s1和s2是否相等,应当使用【25】(A)if(s1=s2)(B)if(s1=s2)(C)if(strcmp(s1,s2)=0)(D)if(strcpy(s1,s2)26 一个C程序执行是

9、从【26】(A)第一个函数开始,直到最后一个函数结束(B)第一个语句开始,直到最后一个语句结束(C)从main()函数开始,在main()函数中结束(D)从main()函数开始,直到源文件中的最后一个函数27 下列选项中是C语言提供的合法的数据类型关键字的是【27】(A)string(B)Int (C)integer(D)char28 以下程序段int k=0; while(k=1) k+; while 循环执行的次数是【28】(A)无限次(B)有语法错,不能执行(C)一次也不执行(D)执行1次29 在下面的条件语句中(其中s1和s2表示C语言的语句),只有一个在功能上与其它三个语句不等价,它

10、是【29】(A)if(p) s1; else s2;(B)if(p=0) s1; else s2;(C)if(p!=0) s1; else s2;(D)if(p=0) s2; else s1;30 若int k=10; 执行下列程序后,变量k的正确结果是【30】switch(k)case 9: k+=1;case 10: k+=1;case 11: k+=1;default: k+=1;(A)10B)11 (C)12(D)1331 若数组名作实参而指针变量作形参,函数调用实参传给形参的是【31】(A)数组的长度(B)数组第一个元素的值(C)数组所有元素的值 (D)数组第一个元素的地址32 以下

11、错误的描述是【32】(A)break语句不能用于循环语句和switch语句外的任何其他语句(B)在switch语句中使用break语句或continue语句的作用相同(C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环(D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环33 for(表达式1; ; 表达式3)可理解为【33】(A)for(表达式1; 0 ; 表达式3)(B)for(表达式1; 1 ; 表达式3)(C)for(表达式1; 表达式1 ; 表达式3)(D)for(表达式1; 表达式3 ; 表达式3)34 设int k; 则语句for(k

12、=0;k=1;k+); 和语句for(k=0;k=1;k+); 执行的次数分别是【34】(A)无限次和0次 (B)0次和无限次(C)都是无限次(D)都是0次35 有以下程序段:int n=0,p;do scanf(“%d”,&p); n+; while(p!=12345 & n=100);37 以下四个关于循环语句的结论中,只有一个是错误的,它是【37】(A)可以用while语句实现的循环一定可以用for语句实现(B)可以用for语句实现的循环一定可以用while语句实现(C)可以用while语句实现的循环一定可以用dowhile语句实现(D)可以用dowhile语句实现的循环一定可以用whi

13、le语句实现38 已知 int j,i1; 则执行j-i+; 后,i和j的值为【38】(A)1 -1(B)1 1(C)2 -1(D)2 139 以下正确的函数定义是【39】(A)double fun(int x,int y)(B)double fun(int x, y) z=x+y; return z; int z; z=x+y; return z; (C)fun (x, y)(D)double fun(int x, int y) int x,y; double z; double z; z=x+y; return z; z=x+y; return z; 40 若x为整型变量,以下定义指针的正

14、确语句是【40】(A)int p=&x;(B)int p=x;(C)int *p=&x;(D)p=x;41 在C语言中,如果下面的变量都是int类型,则输出的结果是【41】sum=a=5; a=sum+ , a+ , +a;printf(%dn,a);(A)5(B)6 (C)7 (D)842 以下正确的说法是【42】(A)实参变量与其对应的形参变量各占用独立的存储单元(B)实参变量与其对应的形参变量共占用一个存储单元(C)只有当实参变量与其对应的形参变量同名时才占用相同的存储单元(D)形参变量是虚拟的,不占用存储单元43 若i为整型变量,则以下循环执行次数是【43】for (i=2; i!=0

15、;) printf(%d, i- ); (A)无限次(B)0次(C)2 次(D)1次44 对以下说明语句的正确理解是【44】int a10=1,2,3,4;(A)将4个初值依次赋给a1至a4(B)将4个初值依次赋给a0至a3(C)将4个初值依次赋给a6至a9(D)因为数组长度与初值个数不一致,所以此语句不正确45 已知:char str120, str210=”books”; 则在程序中能够将字符串 “books” 赋给数组str1的正确语句是【45】(A)str1=”books”;(B)strcpy(str1,str2);(C)str1=str2;(D)strcpy(str2,str1);4

16、6 以下不正确的说法是【46】(A)在不同函数中可以使用相同名字的变量(B)形式参数是局部变量(C)在函数内定义的变量只在本函数范围内有定义(D)在函数内的复合语句中定义的变量在本函数范围内有定义47 已知一个函数的定义如下:double fun(int x, double y) 则该函数正确的函数原型声明为【47】(A)double fun(int x; double y);(B)fun(int x,double y);(C)double fun(int, double);(D)fun(x,y);48 若已定义:int a10,*p=a; 并在以后的语句中未改变p的值,不能表示a1 地址的表

17、达式是【48】(A)p+1(B)a+1(C)a+(D)+p49 要在C中求的值,则可以调用库函数,格式为【49】(A)sin(3.14159/6)(B)sin(30)(C)sin(double(30)(D)sin(30.0)50 在一个源文件中定义的外部变量的作用域【50】(A)本文件的全部范围(B)本程序的全部范围(C)从定义该变量的位置开始至本文件结束(D)本函数的全部范围51 已知函数fun的定义为:void f() 则函数定义中void的含义是【51】(A)执行函数f后,函数没有返回值(B)执行函数f后,函数不再返回(C)执行函数f后,可以返回任意类型的返回值(D)执行函数f后,函数返

18、回void类型的值52 若有定义:int a10; 则对数组a 中元素的正确引用是【52】(A)a10(B)a4.8(C)a(5)(D)*(a+2)53 以下不正确的定义语句是【53】(A)double x5=2.0,4.0,6.0,8.0,10.0;(B)int y5=0,1,3,5,7,9;(C)char c1 =1,2,3,4,5;(D)char c2 =x10,xa,x8;54 有两个字符数组a,b,则以下正确的输入语句是【54】(A)gets(a,b);(B)scanf(“%s,%s”,a,b);(C)scanf(“%s,%s”,&a,&b);(D)gets(&a); gets(&b

19、);55 已知:char *str1=”abcde”, *str2=”xyz”; 则执行语句:printf(“%d”,strlen(strcpy(str1,str2);输出结果是【55】(A)9(B)3(C)5(D)856 调用strlen(“abcd0ef0g”)的返回值为【56】(A)4(B)5(C)8(D)957 在C语言中进行乘方运算,例如求a的3次方,可以使用【57】(A)a3(B)a*3(C)pow(a,3)(D)power(a,3)58 以下对一维整型数组a的正确说明是【58】(A)int a(10);(B)int n=10,an;(C)int n;(D)#define SIZE

20、 10 scanf(“%d”,&n); int aSIZE; int an;59 已知:int i=0,j=1,*p=&i,*q=&j; 其中错误的语句是【59】(A)i=*&j;(B)p=&*&i;(C)j=*p+;(D)i=*&q;60 以下关于结构体与共用体的说法,其中正确的是【60】(A)共用体每个成员分别占有自己的内存单元(B)结构体变量所占的内存长度等于最长的成员的长度,共用体变量所占内存长度是各成员占的内存长度之和(C)共用体同一个内存段可以存放几种不同类型的成员,但在某一时刻只能存放一个成员(D)结构体类型可以出现在共用体类型的定义中,但共用体不能出现在结构体类型定义之中61

21、以下程序的作用是将给出的字符按其格式读入数组ss中,然后输出行列号之和为3的数组元素。#include void main() char ss43=A,a,f,c,B,d,e,b,C,g,f,D; int x, y, z; for(x=0; 【61】;x+) for(y=0; 【62】;y+) z=x+y; if(【63】) printf(“%cn”,ssxy); 【61】(A)x2;(B)x=2;(C)x=3;(D)x=4;【62】(A)y3;(B)y2;(C)y=3;(D)y4;【63】(A)z=2;(B)z=2;(C)z=3;(D)z=3;62 下面程序的功能是在一个键盘输入的字符串中找

22、出最大的字符,并与它前一个字符对调,如果第1个字符最大,则与最后一个对调。#include #include main() char a10; int i, k, t, len; gets(a); len=【64】; k=0; for(i=0;ilen;i+) if(ak10(B)k10(C)k!=0(D)i!=0;63 以下count函数的功能是统计substr在母串str中出现的次数。int count(char *str, char *substr) int i, j, k, num=0; for(i=0; 【67】;i+) for(【68】,k=0; substrk=strj; k+,

23、 j+)if(substr【69】=0) num+; break; return (num);【67】(A)istr(B)stri!=0(C)isubstr(D)substri!=0【68】(A)j=0(B)i=0(C)j=i+1(D)j=i【69】(A)j(B)j+1(C)k(D)k+164 执行以下程序段后,k的值是【70】int a7,b4,i,k=0;for(i=0;i7;i+) ai=i*i;for(i=0;i4;i+) bi=ai*(i-1);k+=bi;(A)29(B)20(C)40(D)4765 分析以下程序的执行结果【71】#include void main()char s

24、1 =”this book”, s2 =”this hook”;int i;for(i=0; s1i!=0 & s2i!=0; i+) if(s1 i = s2 i ) printf(“%c”,s1 i );printf(“n”);(A)this book(B)this ook(C)this hook(D)无输出66 分析以下程序的执行结果【72】#include void main()static char s = “china”,c; int i,j; for(i=0; i=1; j-)if(s j s j-1 ) c=s j ; s j =s j-1 ; s j-1 =c; printf

25、(“%sn”,s);(A)anihc(B)china(C)achin(D)incha67 设有以下程序:#include void main() int a9=1,2,3,4,5,6,7,8,9, *p;p=a; printf(“%dn”,p); printf(“%xn”,p+5);执行此程序,如果第一个printf语句输出值是200,则第二个printf语句的输出是【73】(A)205(B)210(C)CD(D)D268 以下程序运行后,如果从键盘上输入:book book 则输出的结果是【74】#includemain() char a180, a280, *s1=a1, *s2=a2;gets(s1); gets(s2);if(! strcmp(s1,s2) printf(*);else printf(#);printf(%d/n,strlen(strcat(s1,s2);(A)*8(B)#9(C)#6(D)*969 给出以下程序的执行结果【75】#include void main()int a =1,3,4,5,7,8;int y, x, *ptr;y=1;ptr=&a1;for(x=0; x3; x+)y* = *(ptr+x);pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论