C语言.docx
《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(74页珍藏版)》请在冰豆网上搜索。
![C语言.docx](https://file1.bdocx.com/fileroot1/2023-2/22/493c94ce-bf3d-4ead-a966-ffce0e239a7a/493c94ce-bf3d-4ead-a966-ffce0e239a7a1.gif)
C语言
C语言1—8章习题
选择题技巧:
相同选项同时排除
相近选项解在其中
相反选项解在其中
选择题技巧:
绝对选项一般错
委婉选项一般对
下列叙述中错误的是( )。
A)C程序可以由多个程序文件组成
B)一个C语言程序只能实现一种算法
C)C程序可以由一个或多个函数组成
D)一个C函数可以单独作为一个C程序文件存在
B
对于一个正常运行的C程序,以下叙述中正确的是
A)程序的执行总是从main函数开始,在程序的最后一个函数中结束
B)程序的执行总是从程序的第一个函数开始,在main函数结束
C)程序的执行总是从main函数开始
D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
C
以下叙述中正确的是
A)C语句必须在一行内写完
B)C程序中的每一行只能写一条语句
C)C语言程序中的注释必须与语句写在同一行
D)简单C语句必须以分号结束
D4以下叙述中错误的是
A)C程序在运行过程中所有计算都以二进制方式进行
B)C程序在运行过程中所有计算都以十进制方式进行
C)所有C程序都需要编译链接无误后才能运行
D)C程序中字符变量存放的是字符的ASCII值
B
以下叙述中错误的是( )。
A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D)C语言源程序经编译后生成后缀为.obj的目标程序
A
以下选项中不合法的标识符是( )。
A)&a
B)FOR
C)print
D)_00
A
以下选项中,不合法的C语言用户标识符是
A)a_b
B)AaBc
C)a--b
D)_1
C
C源程序中不能表示的数制是( )。
A)十六进制
B)八进制
C)十进制
D)二进制
D
以下选项中,合法的数值型常量是
A)3.1415
B)"A"
C)092
D)0xDH
A
以下选项中合法的实型常量是
A)0
B)3.13e-2.1
C).914
D)2.0*10
C
以下不合法的字符常量是
A)'\\'
B)'\"'
C)'\018'
D)'\xcc'
C
以下正确的字符串常量是
A)"\\\"
B)'abc'
C)OlympicGames
D)""
D
以下非法的定义语句是
A)longb=0L;
B)unsignedinta=-100u;
C)shortc2=0123;
D)intd=0x0;
B
设有定义:
doublex=2.12;,以下不能完整输出变量x值的语句是
A)printf("x=%5.0f\n",x);
B)printf("x=%f\n",x);
C)printf("x=%lf\n",x);
D)printf("x=%0.5f\n",x);
A
若有以下程序
#include
main()
{charc1,c2;
c1='C'+'8'-'3';c2='9'-'0';
printf("%c%d\n",c1,c2);}53+67=120
则程序的输出结果是
A)H'9'
B)H9
C)F'9'
D)表达式不合法输出无定值
B
若有以下程序段
doublex=5.16894;
printf("%f\n",(int)(x*1000+0.5)/(double)1000);5168.94+0.5=5169/1000.0
则程序段的输出结果是
A)5.170000
B)5.175000
C)5.169000
D)5.168000
C
有如下程序
#include
intsub(doublea,doubleb)
{return(int)(a-b);}
main()
{printf("%d\n",
sub(3.8,2.1));
}
程序运行后的输出结果是
A)1
B)1.7
C)2
D)2.0
A
第一章测试
1.计算机能直接执行的程序是
A)源程序
B)目标程序
C)汇编程序
D)可执行程序
2.C语言程序的模块化通过以下哪个选项来实现
A)变量
B)函数
C)程序行
D)语句
3.以下四个程序中,完全正确的是( )。
A)#include
main();
{/*/programming/*/
printf("programming!
\n");}
B)#include
main()
{/*programming*/
printf("programming!
\n");}
C)#include
main()
{/*/*programming*/*/
printf("programming!
\n");}
D)include
main()
{/*programming*/
printf("programming!
\n");}
4.以下叙述中正确的是
A)C语言规定必须用main作为主函数名,程序将从此开始执行
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言程序将从源程序中第一个函数开始执行
D)main的各种大小写拼写形式都可以作为主函数名,如:
MAIN,Main等
5.下列叙述中正确的是
A)C程序中所有函数之间都可以相互调用
B)在C程序中main函数的位置是固定的
C)在C程序的函数中不能定义另一个函数
D)每个C程序文件中都必须要有一个main函数
6.有以下程序
#include
main()
{inta=0,b=0;
/*给a赋值a=10;
b=20;给b赋值*/
printf("a+b=%d\n",a+b);/*输出计算结果*/
}
程序运行后的输出结果是
A)出错
B)a+b=30
C)a+b=10
D)a+b=0
7.有以下程序
#include
main()
{intk=33;
printf("%d,%o,%x\n",k,k,k);
}
程序的运行结果是
A)33,41,21
B)33,33,33
C)41,33,21
D)33,21,41
8.有以下程序
#include
main()
{intk=-17;
printf("%d,%o,%x\n",k,1-k,1-k);
}
程序的运行结果是
A)-17,22,12
B)-17,12,22
C)-17,-22,-12
D)17,22,12
9.有如下程序
#include
main()
{
intx=0x13;
printf("%d\n",x+1);
}
程序运行后的输出结果是
A)20
B)14
C)12
D)13
10.有以下说明语句
char*s="\"Name\\Address\n";
指针s所指字符串的长度是
A)14
B)15
C)17
D)说明语句不合法
11.若在程序中变量均已定义成int类型,且已赋大于1的值,则下列选项中能正确表示代数式
1/(abc)的表达式是
A)1.0/a/b/c
B)1/(a*b*c)
C)1.0/a*b*c
D)1/a/b/(double)c
DBBACDAAAAA
有以下程序:
#include
main()
{ intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是( )。
A)2,3,3
B)2,3,2
C)2,3,1
D)2,2,1
C
设有定义:
intk=0;
以下选项的四个表达式中与其他三个表达式的值不相同的是
A)++k表达式1k1
B)k+=1k=k+1表达式1k1
C)k++表达式0k1
D)k+1表达式1k0
C
****以下程序段中的变量已定义为int类型
sum=pad=5;
pAd=sum++,pAd++,++pAd;
printf("%d\n",pad);
程序段的输出结果是
A)5
B)4
C)6
D)7
A
以下程序段中的变量已定义为int类型
sum=pAd=5;
pAd=sum++,pAd++,++pAd;
printf("%d\n",pAd);
程序段的输出结果是
A)5
B)4
C)6
D)7
D
以下程序段中的变量已定义为int类型
sum=pAd=5;
pAd=++sum,pAd++,++pAd;
printf("%d\n",pAd);
程序段的输出结果是
A)5
B)8
C)6
D)7
B
若有C语言表达式2+3*4+7/3,以下选项中叙述正确的执行顺序是
A)先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5
B)先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16
C)先执行7/3得2,再执行3*4得12,再执行12+2得14,最后执行2+14得16
D)先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9
B
有C语言表达式2*3+4+15%3,关于其执行顺序,以下叙述正确的是
A)先执行2*3得6,再执行6+4得10,再执行15%3得0,最后执行10+0得10
B)先执行2*3得6,再执行15%3得5,最后执行6+4+5得15
C)先执行15%3得0,再执行2*3得6,最后执行6+4+0得10
D)先执行15%3得3,再执行4+3得7,再执行2*3得6,最后执行6+7得13
A
inta,b,c,d;
若想给已定义为int型的变量a、b、c、d赋整数1,以下选项中错误的语句是
A)d=c,c=b,b=a,a=1;
B)d=c=b=a=1;
C)d=(b=c=(a=1));
D)d=1,c=d,b=c,a=b;
A
关系运算符用来判别2个表达式的大小,关系表达式的结果只有2个,就是真或者假。
以下选项中,当x为大于1的奇数时,值为0的表达式是
A)x%2==0
B)x/2
C)x%2!
=0
D)x%2==1
A
1.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的条件表达式(x-y)等价的是( )。
A)(x-y<0||x-y>0)
B)(x-y<0)
C)(x-y>0)
D)(x-y==0)
A
2.以下选项中不属于C语言程序运算符的是
A)sizeof
B)<>
C)()
D)&&
B
3.有以下程序
#include
main()
{
inta,b,c=241;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A)2,1
B)6,1
C)6,0
D)2,0
A
4.有以下程序
#include
main()
{inta;
a=(int)1.99*3;
printf("%d\n",a);
}
程序的运行结果是
A)3
B)5
C)6
D)结果不确定
A
5.设有定义:
intx=2;,以下表达式中,值不为6的是( )。
A)2*x,x+=2
B)x++,2*x
C)x*=(1+x)x=x*(1+x)
D)x*=x+1x=x*(x+1)
A
6.设有定义:
inta=0,b=1,c=1;
以下选项中,表达式值与其它三个不同的是
A)b=a==ca0b0c1
B)a=b=ca1b1c1
C)a=c==ba1b1c1
D)c=a!
=ca0b1c1
A
7.设a,b,c是整型变量且均已赋值,则以下选项中错误的赋值语句是
A)a=(b=3)=1;
B)a=(b=2)+c;
C)a=b=c+10;
D)a=1+(b=c=2);
A
8.设变量已正确定义并赋值,以下正确的表达式是( )。
A)x=y+z+5,++y
B)int(15.8%5)
C)x=y*5=x+z
D)x=25%5.0
A
9.有以下程序:
#include
main()
{unsignedchara=8,c;
c=a>>3;
printf("%d\n",c);
}
程序运行后的输出结果是( )。
A)16
B)1
C)32
D)0
B
10.若变量已正确定义,则以下语句的输出结果是
s=32;
s|=32;
printf("%d",s);
A)-1
B)0
C)1
D)32
B
有如下程序段:
intx=12;
doubley=3.141593;
printf("%d%8.6f",x,y);****
其输出结果是
A)123.141593
B)123.141593
C)12,3.141593
D)123.1415930
A
设有定义:
doublea,b,c;
若要求通过输入分别给a、b、c输入1、2、3,输入形式如下(注:
此处□代表一个空格)
□□1.0□□2.0□□3.0<回车>
则能进行正确输入的语句是
A)scanf("%lf%lf%lf",a,b,c);
B)scanf("%lf%lf%lf",&a,&b,&c);****
C)scanf("%f%f%f",&a,&b,&c);
D)scanf("%5.1lf%5.1lf%5.1lf",&a,&b,&c);
B
****有以下程序
#include
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是
A)1245
B)1256
C)1278
D)1267
A
有以下程序:
#include
main()
{chara,b,c,d;
scanf("%c%c",&a,&b);
c=getchar();
d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:
回车也是一个字符)
12
34
则输出结果是( )。
A)12
34
B)12
C)1234
D)12
3
D
1.有以下程序
#include
main()
{intc,d;
c=10|5;d=10+5;
printf("%d,%d\n",c,d
}c语言中字符串之间的空格不能随变加
程序的运行结果是
A)15,1500001010
B)10,1500000101
C)5,1500001111
D)105,15
A
2.有如下程序
#include
main()
{
inta=8,b;
b=(a>>2)%2;
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A)8,0
B)4,0
C)4,1
D)8,1
A
****3.有以下程序
#include
main()
{inta;
a=(int)(-1.53*3);
printf("%d\n",a);
}
程序的运行结果是
A)-4
B)-3
C)-5
D)结果不确定
****4.有以下程序
#include
doublefun(doublea)
{doublex;
x=a-(int)a;
returnx;
}
main()
{doublea=3.1415;
printf("%f\n",fun(a));
}
程序的运行结果是
A)3.141500
B)0.141500
C)3.000000
D)0.000000
B
5.设有定义:
intx=2;,以下表达式中,值不为6的是( )。
A)2*x,x+=2x=x+2
B)x++,2*x
C)x*=(1+x)x=x*(1+x)
D)x*=x+1x=x*(x+1)
A
若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是
A)1
B)0
C)2
D)不知道a的值,不能确定
A
当变量c的值不为2、4、6时,值也为"真"的表达式是
A)(c>=2&&c<=6)&&(c%2!
=1)
B)(c==2)||(c==4)||(c==6)
C)(c>=2&&c<=6)&&!
(c%2)
D)(c>=2&&c<=6)||(c!
=3)||(c!
=5)
D
令c为3、5、7试一试
****设有定义:
inta=0,b=1;,以下表达式中,会产生"短路"现象,致使变量b的值不变的是
A)a++&&b++
B)a++||++b
C)++a&&b++
D)++a||++b
A
下关于逻辑运算符两侧运算对象的叙述中正确的是( )。
A)可以是任意合法的表达式
B)只能是整数0或非0整数
C)可以是结构体类型的数据
D)只能是整数0或1
A
有以下程序:
#include
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b);
A)1,2
B)1,0
C)3,2
D)0,0
A
设a,b,c是整型变量且均已赋值,则以下选项中错误的赋值语句是
A)a=(b=3)=1;
B)a=(b=2)+c;
C)a=b=c+10;
D)a=1+(b=c=2);
A
设有定义:
inta=0,b=1,c=1;
以下选项中,表达式值与其它三个不同的是
A)b=a==c0
B)a=b=c1
C)a=c==b1
D)c=a!
=c1
A
设变量已正确定义并赋值,以下正确的表达式是( )。
A)x=y+z+5,++y
B)int(15.8%5)
C)x=y*5=x+z
D)x=25%5.0
A
设有定义:
intx=11,y=12,z=0;,以下表达式值不等于12的是
A)z=(x==y)
B)(z=x,y)
C)z=(x,y)
D)(z,x,y)
A
若有以下程序
#include
main()
{intb=10,a=-11;
a%=b%=4;
printf("%d%d\n",a,b);
}
则程序的输出结果是
A)12
B)-12
C)-1-2
D)1-2
B
若有以下程序
#include
main()
{inta=0,b=0,c=0;
c=(a-=++a),(a+=b,b+=4);
printf("%d,%d,%d\n",a,b,c);
}
则程序的输出结果是
A)0,4,0
B)0,4,4
C)1,4,1
D)1,4,4
A
若有以下程序
#include
main()
{inta=0,b=0,c=0,d;
c=(a+=b,,b+=a);/*第4行*/
d=c;;/*第5行*/
;/*第6行*/
;printf("%d,%d,%d\n",a,b,c);/*第7行*/
}
编译时出现错误,你认为出错的是
A)第4行
B)第5行
C)第6行
D)第7行
A
若有以下程序
#include
main()
{inta=0,b=0,c=0
c=(a+=++b,b+=4);
printf("%d,%d,%d\n",a,b,c);
}
则程序的输出结果是
A)1,5,1
B)1,5,5
C)-1,4,4
D)-1,4,-1
B
有以下程序
#include
main()
{
inta=3;
a+=a-=a*a;
printf("%d\n",a);
}
程序的输出结果是
A)0
B)9
C)3
D)-12
D
a-=a*aa=a-a*a
a+=-6a=a+(-6)
若有定义语句:
inta=12;,则执行语句:
a+=a-=a*a;后,a的值是
A)-264
B)552
C)144
D)264
A
设有定义:
intx=7,y=12;,则以下表达式值为3的是
A)y%=(x-x%5)2
B)y%=(x%=5)0
C)y%=x-x%52
D)(y%=x)-(x%=5)3
D
1.以下不能输出小写字母a的选项是
A)printf("%c\n","a");
B)printf("%c\n",'A'+32);
C)putchar(97);
D)putchar('a');
A
2.以下叙述中错误的是
A)gets函数用于从终端读入字符串
B)getchar函数用于从磁盘文件读入字符
C)fputs函数用于把字符串输出到文件
D