当前位置:文档之家› C语言习题

C语言习题


答案:A 15. 以下函数按每行8个输出数组中的数据 void fun(int *w,int n) { int i; for(i=0;i<n;i++) {_____________ printf(“%d”,w[i]); } printf(“\n”); } 下划线处应填入的语句是 A、if(i%8==0)continue; B、if(i/8==0)continue; C、if(i%8==0)printf(“\n”); D、if(i/8==0)printf(“\n”); 答案:C 16. 在C语言中,函数返回值的类型最终取决于( ) A、函数定义时形参的类型 B、return语句中表达式值的类型 C、调用函数时主调函数所传递的实参类型 D、函数定义时在函数首部所说明函数类型 17. 设有语句:int a=1,b=2,*p1=&a,*p2=&b;以下可使指针p1指向 变量b的语句是( )。 A、*p1=p2 B、*p1=*p2 C、p1=p2 D、p1=*p2 18. 若各选项中所用变量已正确定义,函数fun中通过return语句返回一个 函数值,以下选项中错误的程序是( ) A、main() { float fun(int i,int j); ……x=fun(i,j );…… } float fun(int a,int b){……}
B、char s[7];s="Olympic"; C、char *s;s={"Olympic"}; D、char *s;s="Olympic"; 答案:D 11. 下面说法正确的是: A、在C程序中,注释说明只能位于一条语句的后面 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、一个C源程序可由一个或多个函数组成 12. 实参和形参之间的数据是( )传递。 A、用户指定 B、值 C、互传 D、地址 13. 以下叙述中错误的是 A、用typedef可以为各种类型起别名,但不能为变量起别名 B、可以用typedef将已存在的类型用一个新的名字来代表 C、用typedef定义新的类型名后,原有类型名仍有效 D、可以通过typedef增加新的类型 14. 对下述程序段正确的描述是( )。 #include <stdio.h> main() { int x=0,y=0,z=0; if(x=y+z) printf("***"); else printf("###"); } A、输出### B、输出*** C、可以编译,但不能通过连接,因而不能运行 D、有语法错误,不能通过编译
x=y;y=x; else x++;y++; printf("%d,%d",x,y); } A、若输入数据4和3,则输出4和4 B、若输入数据3和4,则输出4和5 C、若输入数据4和3,则输出3和4 D、有语法错误,不能通过编译 答案:D 25. 设x和y均为int型变量,则执行下面的循环后,y的值为( )。 for(y=1,x=1;y<=50;y++) { if(x>=10) break; if(x%2==1) { x+=5; continue; } x-=3; } A、8 B、4 C、6 D、2 答案: 26. 表达式18/4*sqrt(4.0)/8值的数据类型为( )。 A、不确定 B、float C、double D、int 答案:C 27. 有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为
B、float fun(int a,int b){……} main() {……x=fun(i,j);……} C、float fun(int,int); main() {……x=fun(2,10);……} float fun(int a,int b){…..} D、main() {……x=fun(2,10); ……} float fun(int a,int b){……} 19. 以下函数调用语句中含有( )个实参。 func((exp1,exp2),(exp3,exp4,exp5)); A、5 B、2 C、4 D、1 20. void main( ) { int x[8]={8,7,6,5,0,0},*s; s=x+3; printf("%d\n",s[2]); } 执行后输出结果是( ) A、6 B、0 C、5 D、随机值 答案:B 21. 以下程序的输出结果是: #include <stdio.h> main() { int num=0; while(num<=2) { num++;
程序运行的结果是( )。 A、321678 B、876543 C、1098765 D、325678 答案:D 30. 请选出以下语句的输出结果是( )。 printf("%d\n",strlen("\t\"\065\xff\n")); A、输出项不合法,无正常输出 B、14 C、8 D、5 答案:D 31. 下面程序的输出结果是( )。 #include <stdio.h> main() { int i,k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf("%d\n",k) } A、23 B、21 C、22 D、20 答案:B 32. C语言中目标文件的后缀是 : A、.h B、.obj C、.exe D、.c 答案:B 33. 负数在计算机的存储形式: A、原码 、 反码 、 补码任意一种
B、反码 C、 补码 D、原码 答案:A 34. 下面函数的功能是( )。 int funl(char *x) { char *y=x; while(*y++); return(y-x-1); } A、将字符串x连接到字符串y后面 B、比较两个字符串的大小 C、将字符串x复制到字符串y D、求字符串的长度 35. 以下程序的运行结果是( ) #define MIN(x,y) (x)<(y)?(x):(y) void main() { int i=10,j=15,k; k=10*MIN(i,j); printf(“%d\n”,k); } A、150 B、15 C、100 D、10 答案:B 36. 下面正确的字符常量是( )。 A、'' B、'\\'' C、'W' D、"a" 答案:C 37. 请读下面的程序。 #include <stdio.h>
一、单选(共100分) 单项选项题 1. 以下叙述中错误的是( )。 A、可以通过赋初值的方式确定数组元素的个数 B、数组名代表的是数组所占存储区的首地址,其值不可改变 C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给 出“下标越界”的出错信息 D、对于double类型数组,不可以直接用数组名对数组进行整体输入或输 出 答案:C 2. ( )可以不进行函数类型说明。 A、以上都是 B、被调函数的定义在主调函数定义之前时 C、在所有函数定义前,已在函数外预先说明了被调函数类型 D、被调函数的返回值是整型或字符型时 3. .以下正确的说法是( )。 A、用户若需要使用标准库函数,调用前不必使用预处理命令将该函数 所在的头文件包含编译,系统会自动调用 B、用户可以重新定义标准库函数,如若此,该函数将失去原有定义 C、系统不允许用户重新定义标准库函数 D、用户若需要调用标准库函数,调用前必须重新定义 4. 有以下程序 #include <stdio.h> void main() { int n,*p=NULL; *p=&n; printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\n”,p); } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以 下语句正确的是 A、printf(“%d\n”,p); B、*p=&n; C、scanf(“%d”,&p) D、int n,*p=NULL;
789,则正确的输入是( ) A、123 456 789 B、m=123 n=456 p=789 C、m=123,n=456,p=789 D、m=123n=456p=789 答案:D 28. 在下列选项中,没有构成死循环的程序段是( )。 A、int s=36; while(s); B、for( ; ; ) C、int k=1000; do{++k;} while(k>=1000); D、int i=100; while(1) { i=i%100+1; if(i>100)break; } 29. 有以下程序 #include <stdio.h> void fun(int a[],int n) { int i,t; for(i=1;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i]; a[n10]={1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2;i<8;i++)printf("%d",k[i]); printf("\n") }
5. 以下关于编译预处理的叙述中不正确的是( ) A、预处理命令是在正式编译之前先行被处理的 B、预处理命令行必须位于源程序的开始部分 C、一条有效的预处理命令行必须单独占据一行 D、C源程序中凡是以“#”号开始的控制行都是预处理命令行 6. 设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选 择的存储类别是( )。 A、auto或register B、register C、static D、auto 答案:C 7. 在C语言中,switch语句后一对圆括号中表达式的类型( )。 A、只能是整型或实型 B、只能为int型 C、可以是整型或字符型 D、可以是任何类型 答案:D 8. 以下关于return语句的叙述中正确的是( )。 A、没有return语句的自定义函数在执行结束时不能返回到调用处 B、一个自定义函数中可以根据不同情况设置多条return语句 C、定义成void类型的函数中可以有带返回值的return语句 D、一个自定义函数中必须有一条return语句 9. 若要用下面的程序片段使指针变量P指向一个存储型变量的动态存储 单元: int *p; p=______malloc(sizeof(int)); 空格应填入( )。 A、(int *) B、int * C、(*int) D、int 10. 下列语句组中,正确的是 A、char s[7];s={"Olympic"};
相关主题