文档介绍:该【C语言程序设计实例教程新版 】是由【DATA洞察】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【C语言程序设计实例教程新版 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。C语言程序设计实例教程
第一部分 单选题(50题)
1、若intx=5;执行if(x>3&&x<7)printf("yes");elseprintf("no");输出结果是?( )
【答案】:答案解析:x=5>3且<7,条件为真,输出yes,故选A。
2、若inta[5]={10,20,30,40,50};则a[4]的值是?( )
【答案】:答案解析:a[4]是第五个元素,值为50,故选B。
3、若inti=0;执行do{printf("%d",i);i++;}while(i<0);输出结果是?( )
【答案】:答案解析:do-while先执行一次(输出0,i=1),判断i<0为假,循环结束,故选A。
4、表示“x大于5且小于10”的合法C语言表达式是?( )
<x<10
>5||x<10
>5&&x<10
>5&x<10
【答案】:答案解析:逻辑与用&&,逻辑或用||,A是连续比较语法错误,&是按位与,故选C。
5、若intx=4;执行switch(x){case2:printf("2");break;default:printf("0");case4:printf("4");break;}输出结果是?( )
【答案】:答案解析:x=4匹配case4,执行输出4,break跳出,故选B。
6、若inta[5]={1,2,3};则a[3]的值是?( )
【答案】:答案解析:初始化时未赋值的元素默认为0,a[3]=0,故选A。
7、若intx=1;执行switch(x){case1:printf("1");break;case1:printf("2");break;}会出现什么情况?( )
【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。
8、若intx=9;执行以下代码后输出结果是?( )if(x>10)printf("A");elseif(x>8)printf("B");elseif(x>6)printf("C");elseprintf("D");
D.
【答案】:答案解析:x=9>8,执行第二个分支,输出B,故选B。
9、函数定义在main函数之后时,必须先?( )
【答案】:答案解析:main函数调用其他函数时,若函数定义在main之后,需先声明(否则编译器找不到函数),故选B。
10、以下哪个for循环是无限循环?( )
(i=0;i<5;i++)
(;;)
(i=0;i<5;i--);
(i=5;i>0;i--)
【答案】:答案解析:for循环三个表达式均省略时,条件恒为真,是无限循环,A执行5次,C、D初始条件不满足(执行0次),故选B。
11、若charstr[10];执行strcpy(str,"hello");后str的长度是?( )
【答案】:答案解析:strcpy复制字符串"hello"(含\0),长度为5(不含\0),故选A。
12、若floatf=;强制转换为整型的表达式是?( )
(f)
B.(int)f
D.(float)f
【答案】:答案解析:强制类型转换格式为(目标类型)变量,(int)f结果为5(取整数部分),故选B。
13、以下if语句的语法正确的是?( )
(x>0){printf("a");elseprintf("b");}
(x>0)printf("a");else{printf("b");}
(x>0)printf("a");elseprintf("b");}
(x>0){printf("a");}elseprintf("b");}
【答案】:答案解析:A缺少},C多},D多},B语法正确(else后{}可加可不加),故选B。
14、数组作为函数参数时,函数中修改数组元素会影响主调函数中的数组吗?( )
(指针传递)
(值传递)
【答案】:答案解析:数组名传参是指针传递,函数中通过指针修改元素会同步到主调函数数组,故选A。
15、以下函数参数为指针的是?( )
(int*a){}
(inta){}
(inta[]){}
【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。
16、以下for循环的语法错误是?( )
(inti=0;i<5;i++)printf("%d",i);
(i=0;i<5;i++)printf("%d",i);
(;i<5;i++)printf("%d",i);
(i=0;;i++)printf("%d",i);
【答案】:答案解析:B中i未定义(需先声明inti;),A(C99标准允许循环内定义)、C(初始化省略)、D(条件省略,无限循环)语法均正确,故选B。
17、以下哪个赋值语句是正确的?( )
=5;
=5;
=b=5;
=b=5;
【答案】:答案解析:B、D未定义变量,C不能连续赋值定义,A定义并赋值正确,故选A。
18、若inti=1,s=0;执行while(i<=5){s+=i;i++;}后s的值是?( )
【答案】:答案解析:循环累加1+2+3+4+5=15,s=15,故选A。
19、若inta=3,b=4;则表达式ab++的值是?( )
【答案】:答案解析:b++是后置自增,先参与运算(ab=3*4=12),再自增(b变为5),故选A。
20、若inta[5]={10,20,30,40,50};则a[2]的值是?( )
【答案】:答案解析:数组下标从0开始,a[2]是第三个元素30,故选C。
21、以下关于动态内存分配的说法正确的是?( )
,返回void*
,避免内存泄漏
【答案】:答案解析:A、B、C均是动态内存分配的核心规则,故选D。
22、若charstr="hello";则str[1]的值是?( )
A.'h'
B.'e'
C.'l'
D.'\0'
【答案】:答案解析:str是字符串首地址,str[1]等价于(str+1),值为'e',故选B。
23、若intx=3,y=5;则表达式x>y?x:y的结果是?( )
【答案】:答案解析:三元运算符格式“条件?值1:值2”,x>y为假,取y=5,故选B。
24、以下函数参数传递方式中,能修改实参值的是?( )
【答案】:答案解析:值传递修改的是形参(副本),不影响实参;地址传递通过指针修改实参值,故选B。
25、以下关于main函数的说法错误的是?( )
【答案】:答案解析:main函数可声明为void(无返回值),C说法错误,A、B、D正确,故选C。
26、以下switch语句中,break语句的作用是?( )
【答案】:答案解析:break在switch中用于跳出整个switch语句,避免case穿透,故选B。
27、若inti=0;执行while(i<5){printf("%d",i);i++;if(i==3)break;}输出结果是?( )
【答案】:答案解析:i=3时break,输出012,故选A。
28、若inti=0,s=0;执行while(i<=3){s+=i2;i++;}后s的值是?( )
【答案】:答案解析:累加02+12+22+3*2=0+2+4+6=12,s=12,故选A。
29、若inti=0,s=0;执行for(i=0;i<4;i++)s+=i;后s的值是?( )
【答案】:答案解析:累加0+1+2+3=6,s=6,故选A。
30、若intx=5;则表达式++x的结果是?( )
【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。
31、若inti=0,s=0;执行do{s+=i;i++;}while(i<5);后s的值是?( )
【答案】:答案解析:do-while累加0+1+2+3+4=10,s=10,故选A。
32、若intx=2;执行switch(x){case1:printf("a");case2:printf("b");case3:printf("c");}输出结果是?( )
【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出bc,故选B。
33、若inta[3][3]={{1,2},{3,4},{5,6}};则a[1][1]的值是?( )
【答案】:答案解析:a[1][1]是第二行第二列,值为4,故选B。
34、若inta=3,b=5;执行以下代码后输出结果是?( )if(a>b)printf("A");elseprintf("B");
【答案】:答案解析:a=3<b=5,条件为假,执行else分支,输出B,故选B。
35、函数参数传递中,值传递适用于?( )
,无需修改实参
,需修改元素
,需修改实参
,需修改成员
【答案】:答案解析:值传递用于简单变量(不修改实参),地址传递用于需修改实参的场景,故选A。
36、以下哪个函数用于读取字符?( )
()
()
()
()
【答案】:答案解析:getchar()读取单个字符,puts()输出字符串,gets()读取字符串(已淘汰),故选C。
37、以下哪个关键字用于定义整型变量?( )
【答案】:答案解析:int定义整型,char字符型,float单精度浮点型,double双精度浮点型,故选B。
38、若inti=1;执行do{printf("%d",i);i++;}while(i<=0);输出结果是?( )
【答案】:答案解析:do-while先执行一次(输出1,i=2),再判断i<=0为假,循环结束,故选A。
39、以下函数调用错误的是?( )
();
(5);
(3,4);
(需看函数定义)
【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。