资源描述
C
语
言
练
习
题
1
第一章 C语言概述
1、所有C函数得结构都包括得三部分就是( C )
A.语句、花括号与函数体
B.函数名、语句与函数体
ﻩC.函数名、形式参数与函数体
D.形式参数、语句与函数体
2、C语言中主函数得个数就是( B )
A.2个 B.1个 C.任意个 D.10个
3、下面可能不影响程序正常运行得就是( C )
A.语法错误 B.逻辑错误
C.警告提示 D.算法错误
4、一个C程序得执行就是从( A )
A、 本程序得main()函数开始,到main()函数结束、
B、 本程序文件得第一个函数开始,到本程序文件第一个函数结束、
C、 本程序文件得第一个函数开始,到本程序main函数结束、
D、 本程序得main()函数开始,到本程序文件得最后一个函数结束、
5、C程序由( C )组成。
A.子程序 B.主程序与子程序
C.函数 D.过程
6、下列关于C语言注释得叙述中错误得就是( D )。
A.以“/*”开头并以“*/”结尾得字符串为C语言得注释内容。
B.注释可出现在程序中得任何位置,用来向用户提示或解释程序得意义。
C.程序编译时,不对注释作任何处理。
D.程序编译时,需要对注释进行处理。
7、C语言源程序经过编译后,生成文件得后缀就是____C_____。ﻫ A、、c B、、exe C、、obj D、、cc
8、以下说法中正确得就是____C_____。ﻫA、C语言程序总就是从第一个函数开始执行ﻫB、在C语言程序中,要调用函数必须在main()函数中定义ﻫC、C语言程序总就是从main()函数开始执行ﻫD、C语言程序中得main()函数必须放在程序得开始部分
9、以下叙述中正确得就是__A____。
A:C程序中注释部分可以出现在程序中任意合适得地方
B:花括号"{"与"}"只能作为函数体得定界符
C:构成C程序得基本单位就是函数,所有函数名都可以由用户命名
D:分号就是C语句之间得分隔符,不就是语句得一部分
第二章 变量与表达式
第一节 简单表达式
1、算术运算符及其表达式
1、C语言中运算对象必须就是整型得运算符就是_____A______。ﻫA、% B、* C、+ D、 /
2、下面运算符优先级最高得就是 (C )ﻫA、<= B、= C、% D、&&
3、下面程序
main()
{
int x=10,y=3;
printf("%d\n",y=x/y);
}
得输出就是___C___。
A:0 B:1 C:3 D:不确定得值
4、执行下面程序段后,c3中得值就是_A____
int c1=1 , c2=2 , c3;
c3=c1/c2;
A:0 B:1/2 C:0、5 D:1
2、C语言表达式书写规则
1、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)得C语言表达式就是___A___。
A:x/y*z B:x*(1/(y*z)) C:x/y*1/z D:x/y/z
2、设有定义:float a=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符得就是___B___。
A:(a+b)*h/2 B:(1/2)*(a+b)*h C:(a+b)*h*1/2 D:h/2*(a+b)
第二节 变量
1、变量
1、下列关于C语言得关键字得叙述中错误得就是( C )
A.关键字就是C语言规定得具有特定意义得字符串,通常也称保留字。
B.用户定义得标识符不应与关键字相同。
C.ANSI C标准规定得关键字有64个。
D.ANSI C标准规定得关键字有32个。
2、下面关于C语言用户标识符得描述,正确得就是( D )
A、 不区分大小写 B、 用户标识符不能描述常量
C、 类型名也就是用户标识符 D、 用户标识符可以作为变量名
3、以下( D )就是正确得变量名。
A、 a、bee B、 -p11 C、 int D、 p_11
4、下面属于C语言标识符得就是( D )
A. 2ab B、 f C、 ?b D、 _a12
5、下列保留字中用于构成循环结构得就是( B )
A、 if B、 while C、 switch D、 default
6、以下定义语句中正确得就是( C )。
A、 char a='A'b='B'; B、 float a=b=10、0;
C、 int a=10,*b=&a; D、 float *a,b=&a;
7、下面标识符中,不合法得用户标识符为 ( D )
A) Pad B) a_10 C) _12ab D) int
8、C语言中得标识符只能由字母、数字与下划线三种字符组成,且第一个字符_____C____。
A、必须为下划线 B、可以就是字母、数字与下划线中任一种字符
C、必须为字母或下划线 D、必须为字母
9、请选出可用作C语言用户标识符得一组标识符____B__。
① void ② a3_b3 ③ For ④ 2a
define _123 _abc DO
WORD IF case sizeof
A:① B:② C:③ D:④
9、以下选项中合法得用户标识符就是___B___。
A:long B:_2Test C:3Dmax D:A、dat
10、以下不能定义为用户标识符得就是__D____。
A:scanf B:Void C:_3_ D:int
11、在C语言中,如果下面得变量都就是int类型,则输出结果就是__A____
sum=pad=5;
pad=sum++,pad++,++pad;
printf("%d\n",pad);
A:7 B:6 b C:5 D:4
2、常量与符号常量
1、以下( B )就是错误得整型常量。
A、 -0xcdf B、 018 C、 0xe D、 011
2、下列符号中用来表示C语言中得回车换行得就是( B )
A、 \” B、 \n C、 \b D、 \\
3、以下( C )就是正确得字符常量。
A、 "c" B、 '\\'' C、 'W' D、 "\32a"
4、下面不正确得字符串常量就是 ( A )
A) 'abc' B) "12'12" C) "0" D) " "
6、以下列出C语言常量中,错误得就是__B____。
A:OxFF B:1、2e0.5 C:2L D:'\72'
7、以下选项中,非法得字符常量就是___C___。
A:'\t' B:'\17' C:"\n" D:'\xaa'
第三节 数据类型
1、整型数据
1、以下选项中不属于C语言得类型得就是__D____。
A:signed short int B:unsigned char
C:singed long D:long short
2、以下选项中可作为C语言合法整数得就是___C___。
A:10110B B:0386 C:0Xffa D:x2a2
2、实型数据
1、以下选项中属于C语言得数据类型就是___C___。
A:复数型 B:逻辑型 C:双精度型 D:集合型
2、若已定义x与y为double类型,则表达式x=1,y=x+3/2得值就是___C___。
A:1 B:2 C:2、0 D:2、5
3、设变量x为float型且已赋值,则以下语句中能将x中得数值保留到小数点后两位,并将第三位四舍五入得就是___C___。
A:x=x*100+0、5/100、0; B:x=(x*100+0、5)/100、0
C:x=(int)(x*100+0、5)/100、0; D:x=(x/100+0、5)/100、0;
4、以下符合C语言语法得实型常量就是__C____。
A:1、2E0、5 B:3、14159E C:、5E-3 D:E15
3、字符型数据
1、判断char型变量ch就是否为大写字母得正确表达式就是____C_____。
A、‘A’<=ch<=‘Z’ B、‘A’<=ch and ch<=‘Z’ ﻫC、‘A’<=ch && ch<=‘Z’ D、‘A’<=ch || ch<=‘Z’
2、 设有语句char a='\72';则变量a ( A ) 。ﻫA)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法
3、 判断变量ch中得字符就是否为数字字符,最简单得正确表达式就是( D )。
A)ch>=0&&ch<=9ﻩﻩﻩ B)’0’<=ch<=’9’
C)ch>=’0’||ch<=’9’ﻩ D)ch>=’0’&&ch<=’9’
4、设有说明语句: char a = '\72'; 则变量a __A____。
A:包含1个字符 B:包含2个字符 C:包含3个字符 D:说明不合法
5、已知大写字母A得ASCII码就是65,小写字母a得ASCII码就是97,则用八进制表示得字符常量'\101'就是___A___。
A:字符A B:字符a C:字符e D:非法得常量
6、若有以下定义与语句:
char c1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A');
则输出结果就是___B____
A:2,M B:3,E C:2,e D:输出结果不确定
7、已知字符A得ASCII码为十进制得65,下面程序得输出就是__A___
main()
{
char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
A:67,D B:B,C C:C,D D:不确定得值
8、若变量c为char类型,能正确判断出c为小写字母得表达式就是D
A:'a'<=c<= 'z' B:(c>= 'a')||(c<= 'z')
C:('a'<=C)and ('z'>=c) D:(c>= 'a')&&(c<= 'z')
4、类型转换
1、表达式 ‘f’+ 10 得类型就是____A_______。
A、int B、char C、double D、float
2、设a与b均为double型常量,且a=5、5、b=2、5,则表达式(int)a+b/b得值就是___D___。
A:6、500000 B:6 C:5、500000 D:6、000000
第四节 赋值语句
1、若有定义:int a=2; 则正确得赋值表达式就是( A )。
A、 a-=(a*3) B、 double(-a) C、 a*3 D、 a*4=3
2、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a得值就是( C )
A) –3 B) 9 C) –12 D) 6
3、请选出合法得C语言赋值语句__B____。
A:a=b=58 B:i++; C:a=58,b=58 D:k=int(a+b);
4、若变量已正确定义并赋值,下面符合C语言得表达式就是___B___。
A:a:=b+1 B:a=b=c+2 C:int 18、5%3 D:a=a+7=c+b
5、若变量a、i已正确定义,且i已正确赋值,合法得语句就是__B____。
A:a==1 B:++i; C:a=a++=5 D:a=int(i);
6、以下非法得赋值语句就是__C____。
A:n=(i=2,++i); B:j++; C:++(i+1); D:x=j>0;
7、以下选项中非法得表达式就是___D___。
A:0<=x<100 B:i=j==0 C:(char)(65+3) D:x+1=x+1
8、若以下选项中得变量已正确定义,则正确得赋值语句就是___C___。
A:x1=26、8%3; B:1+2=x2; C:x3=0x12; D:x4=1+2=3;
第五节 复杂表达式
1、自增、自减运算符
1、设x、y均为整型变量,且x=10,y=3,则以下语句得输出结果就是printf(“%d,%d\n”,x--,--y);( D )
A)10,3 B)9,3 C)9,2 D)10,2
2、设i为整型变量,且值为100,则语句++i;执行后i得值就是____B_____。ﻫA、100 B、101 C、102 D、语句错
3、 以下程序得输出结果就是 ( B ) 。ﻫ# include <stdio、h>
main()
{
int i=010 , j = 10;ﻫ printf("%d,%d\n",+ +i , j - -);
}ﻫ A) 11,10 B) 9,10 C) 010,9 D) 10,9ﻫ4、下列程序得运行结果就是( A )
# define A 5
# define B A+1
main( )
{int a;
a=B;
printf(″%d\n″a--);
}
ﻩA、6 B、5 ﻩC、4 D、出错
5、以下程序得输出结果就是___A___。
#include<stdio、h>
main()
{
int i=10,j=10;
printf("%d,%d\n",++i,j--);
}
A:11,10 B:9,10 C:010,9 D:10,9
6、有如下程序
main()
{ int y=3,x=3,z=1;
printf("%d %d\n",(++x,y++),z+2);
}
运行该程序得输出结果就是___D___。
A:3 4 B:4 2 C:4 3 D:3 3
7、设x,y均为int型变量,且x=10,y=3,则以下数据得输出结果就是 D printf("%d,%d\n",x--,--y)。
A:10,3 B:9,3 C:9,2 D:10,2
8、下列关于单目运算符++、--得叙述中正确得就是___D___。
A:它们得运算对象可以就是任何变量与常量
B:它们得运算对象可以就是char型变量与int型变量,但不能就是float型变量
C:它们得运算对象可以就是int型变量,但不能就是double型变量与float型变量
D:它们得运算对象可以就是char型变量、int型变量与float型变量
9、main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后得输出结果就是__D____。
A:3 B:5 C:-1 D:-2
10、有以下程序
main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后得输出结果就是___A___。
A:b,b B:b,c C:a,b D:a,c
11、若有以下定义与语句:
int a=5
a++;
此处表达式a++得值就是__B__
A:7 B:6 C:5 D:4
2、关系运算符与关系表达式
1、设有int x,y; 以下语句判断x与y就是否相等,正确得说法就是该语句( B )
if (x=y) printf(" x is equal to y、");
A、 语法错 ﻩB、 不能判断x与y就是否相等
C、 编译出错 D、 能判断x与y就是否相等
2、表达式:10!=9得值就是___D___。
A:true B:非零值 C:0 D:1
3、逻辑运算符与逻辑表达式
1、能表示条件0≤x ≤100得表达式就是 ( D )
A) 0<= x <=100 B、 x >=0, x<=100
C) 0≤x ≤100 D) x>=0&& x<=100
2、设有:int a=1,b=2,c=3,d=4,m=2,n=2;
执行 (m=a>b) && (n=c>d) 后n得值为 ( C )
A) 0 B) 1 C) 2 D) 3
3、能正确表示a与b同时为正或同时为负得逻辑表达式就是___D______。
A、(a>=0‖b>=0)&&(a<0‖b<0) B、(a>=0&&b>=0)&&(a<0&&b<0)
C、(a+b>0)&&(a+b<=0) D、a*b>0
4、设有定义int a = 1,b = 2, c = 3;则下面得值为1得表达式就是___A_______。ﻫ A、a&&7 B、a<b&&!c C、a&&!b D、b〉= c
5、设a、b与c都就是int型变量,且a=3、b=4、c=5,则下面得表达式中,值为0得表达式就是___D___。
A:'a'&&'b' B:a<=b C:a||+c&&b-c D:!((a<b)&&!c||1)
6、设a=5、b=6、c=7、d=8、m=2、n=2,执行
(m=a>b)&&(n=c>d)
后n得值为___B___。
A:1 B:2 C:3 D:4
7、有如下程序段
int a=14,b=15,x;
char c='A';
x=(a && b) && (c<'B');
执行该程序段后,x得值为___D___。
A:true B:false C:0 D:1
8、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y得值为____C__。
A:不定值 B:4 C:3 D:1
9、 以下程序得输出结果就是__A____。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d)
}
A:1 B:0 C:非0得数 D:-1
10、有以下程序
main()
{ int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);
printf("%d,%d\n",k,m);
}
程序运行后得输出结果就是__C____。
A:0,0 B:0,1 C:1,0 D:1,1
11、有以下程序
main()
{ int i=1, j=1, k=2;
if ( (j++ || k++) && i++)
printf("%d,%d,%d\n", i, j, k);
}
执行后输出结果就是 C
A:1,1,2 B:2,2,1 C:2,2,2 D:2,2,3
12、以下程序得输出结果就是 A
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A:1 B:0 C:非0得数 D:-1
4、 逗号运算符
1、若x,i,j,k都就是int型变量,则执行下面表达式后x得值为____C____ﻫ x=(i=11,j=22,k=33)
A、 11 B、22 C、33 D、66
2、若x与y都就是int型变量,x=100、y=200,且有下面得程序片段
printf("%d",(x,y) );
上面程序片段得输出结果就是__A____。
A:200 B:100 C:100 200 D:输入格式符不够,输出不确定得值
3、若执行以下程序段,其输出结果就是__B____
int a=0 , b=0 , c=0;
c=(a-=a-5) , (a=b,b+3) ;
printf("%d , %d , %d\n" , a,b,c);
A:3,0,-10 B:0,0,5 C:-10,3,-10 D:3,0,3
第六节 基本输入输出语句
2、格式化输入与输出函数
1、若有说明语句:int a,b,c,*d=&c;,则能从键盘读入三个整数分别赋给变量a、b、c得语句就是( A )
A、 scanf("%d%d%d",&a,&b,d); B、 scanf("%d%d%d",&a,&b,&d);
C、 scanf("%d%d%d",a,b,d); D、 scanf("%d%d%d",a,b,*d);
2、调用scanf(“%d,%d”,&a,&b);时,正确得键盘输入就是 ( A )
A) 10,20 B) a=10,b=20 C) 10:20 D) 10 20
3、下面得程序段
int i = 6;ﻫ printf (“***%-4d***\n”, i);ﻫ 得输出就是______B______。
A、*** 6*** B、***6 ***
C、***0006*** D、出错
4、 已知在ASCII代码中,字母A得序号为65,以下程序得输出得结果就是 ( D ) 。
# include <stdio、h>
main()ﻫ{
char c1='A', c2='Y';ﻫ printf("%d,%d\n",c1,c2);
}
A) 因输出格式不合法,输出错误信息 B)65,90 C)A,Y D)65,89
5、以下程序得输出结果就是__D____。
main()
{ int k=17;
printf("%d,%o,%x\n",k,k,k);
}
A:17,021,0x11 B:17,17,17 C:17,0x11,021 D:17,21,11
6、若变量已正确说明为float类型,要通过语句scanf("%f %f %f",&a,&b,&c);给 a赋予10、0,b赋予22、0,c赋予33、0,不正确得输入形式就是:___B___。
A:10
22
33
B:10、0,22、0,33、0
C:10、0
22、0 33、0
D:10 22
33
7、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确得输入语句就是___B___。
A:INPUT X,Y,Z; B:scanf("%d%d%d",&X,&Y,&Z);
C:scanf("%d%d%d",X,Y,Z); D:read("%d%d%d",&X,&Y,&Z);
8、已知i、j、k为int型变量,若从键盘输入:1,2,3↙,使i得值为1、j得值为2、k得值为3,以下选项中正确得输入语句就是__C____。
A:scanf("%2d%2d%2d",&i,&j,&k); B:scanf(""%d %d %d",&i,&j,&k);
C:scanf("%d,%d,%d",&i,&j,&k); D:scanf("i=%d,j=%d,k=%d",&i,&j,&k);
9、设有定义:long x=-123456L;,则以下能够正确输出变量x值得语句就是___B___。
A:printf("x=%d\n",x); B:printf("x=%ld\n",x);
C:printf("x=%8dL\n",x); D:printf("x=%LD\n",x);
10、有以下程序段
int m=0,n=0; char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10↙,则输出结果就是___A___。
A:10,A,10 B:10,a,10 C:10,a,0 D:10,A,0
11、有以下程序
main()
{ int x=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果就是__C____。
A:10,01 B:02,12 C:102,10 D:02,10
12、有以下程序
main()
{ char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66↙。则输出结果就是___A___。
A:6,5,A,B B:6,5,65,66 C:6,5,6,5 D:6,5,6,6
13、有以下程序
main()
{ unsigned int a;
int b=-1;
a=b;
printf("%u",a);
}
程序运行后得输出结果就是___B___。
A:-1 B:65535 C:32767 D:-32768
14、下面程序得输出就是__D____
main()
{
int k=11;
printf("k=%d,k=%o,k=%x\n",k,k,k);
}
A:k=11,k=12,k=13 B:k=11,k=13,k=13 C:k=11,k=013,k=oXb D:k=11,k=13,k=b
15、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处<CR>代表换行):
1 2 <CR>
A B C<CR>
则能给x赋整数1,给y赋数2,给a赋字符A,给b赋字符B,给c赋字符C得正确程序段就是___C____
A:scanf("x=%d y=%d",&x,&y); a=getchar(); c=getchar();
B:scanf("%d%d",&x,&y); a=getchar(); b=getchar(); c=getchar();
C:scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);
D:scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);
16、设i就是int型变量,f就是float型变量,用下面得语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把100与765、12分别赋给i与f,则正确得输入为 B
A:100<空格>765、12<回车> B:i=100,f=765、12<回车>
C:100<回车>765、12<回车> D:x=100<回车>,y=765、12<回车>
第七节 顺序结构程序设计
1、C语言中用于结构化程序设计得三种基本结构就是___A___。
A:顺序结构、选择结构、循环结构 B:if、switch、break
C:for、while、do-while D:if、for、continue
第三章 控制语句
第一节if语句
1、if…else语句得三种形式
1、以下if语句错误得就是( A )
A、 if (x<y) x++; y++; else x--; y--; B、 if (y) x+=y;
C、 if (x>y); D、 if (x==5) scanf ("%d",&x); else x++;
2、 两次运行下面得程序,如果从键盘上分别输入6与4,则输出结果就是 A
main( )
{
int x;
scanf("%d",&x);
if(x + + >5)
printf("%d",x);
else
printf("%d\n",x - -);
}ﻫA) 7与5 B) 6与3 C) 7与4 D) 6与4
3、若执行下面得程序时从键盘上输入3与4,
main()
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d\n",s);
}
则输出就是__B____。
A:14 B:16 C:18 D:20
展开阅读全文