总练习题C语言Word文件下载.docx
《总练习题C语言Word文件下载.docx》由会员分享,可在线阅读,更多相关《总练习题C语言Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
%4.2f"
&
d);
当输入数据时,必须指明变量地址,例如:
f);
10.若有以下定义和语句:
A
intu=010,v=0x10,w=10;
printf("
%d,%d,%d\n"
u,v,w);
则输出结果是:
8,16,10B
10,10,10
8,8,10D
8,10,10
11.已知:
intx,y;
floatz;
则以下输入语句错误的是D
%d,%d,%f"
x,&
y,&
z);
scanf("
%d%d%f"
%d%d%f"
&
%d%d%6.2f"
12.计算机能直接执行的程序是_____D________。
A)源程序B)目标程序C)汇编程序D)可执行程序
13.以下叙述中正确的是________C____。
A)用C语言实现的算法必须要有输入和输出操作
B)用C语言实现的算法可以没有输出,但必须要有输入
C)用C语言程序实现的算法可以没有输入,但必须要有输出
D)用C语言程序实现的算法可以既没有输入,也没有输出
14.以下选项中合法的标识符是____C__________。
A)1_1B)1-1C)_11D)1_
15.5.C源程序中不能表示的数制是_____A_______。
A)二进制B)八进制C)十进制 D)十六进制
16.以下关于C语言数据类型使用的叙述中错误的是_____D_____。
A)若要准确无误地表示自然数,应使用整数类型
B)若要保存带有多位小数的数据,应使用双精度类型
C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型
17.以下选项中,能用作数据常量的是____D_______。
A)o115B)0118C)1.5e1.5D)115L
18.以下选项中不能作为C语言合法常量的是______A________。
A)’cd’B)0.1e+6C)”a”D)‘\011’
19.有以下定义:
inta;
longb;
doublex,y;
则以下选项中正确的表达式是__A_______。
A)a%(int)(x-y)B)A(a=x)!
=yC)(a*y)%bD)y=x+y=a
20.(int)((double)9/2)-(9)%2的值是____B_________。
A)0B)3C)4D)5
21.程序段:
intx=12;
doubley=3.141593;
printf(“%d%8.6f”,x,y);
输出结果是_____A_____。
A)123.141593B)123.141593C)12,3.141593D)123.1415930
22.有以下语句:
intb;
charc[10];
,则正确的输入语句是______B_____。
A)scanf(“%d%s”,&
b,&
c);
B)scanf(“%d%s”,&
b,c);
C)scanf(“%d%s”,b,c)D)scanf(“%d%s”,b,&
23.若变量已正确定义。
在if(W)printf(“%d\n”,k);
中,以下不可替代W的是____A_____。
A)a<
>
b+cB)c=getchar()C)a==b+cD)a++
24.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是___B____________。
A)kk>
=’A”&
&
kk<
=’Z’B)!
(kk>
=’A’||kk<
=’Z’)
C)(kk+32)>
=’a’&
(kk+32)<
=’z’D)isalpha(kk)&
(kk<
91)
25.15.若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是____A_______。
A) 1 B)0C)2D)不知道a的值,不能确定
26.当变量c的值不为2、4、6时值也为“真”的表达式是____B_________。
A)(c==2)||(c==4)||(c==6)B)(c>
=2&
c<
=6)||(c!
=3)||(c!
=5)
C)(c>
=6)&
(c%2)
D)(c>
(c%2!
=1)
27.如有表达式(w)?
(--x):
(++y),则其中与w等价的表达式是___D_________。
A)w=1B)w=0C)w!
=1D)w!
=0
1.C语言源程序文件的后缀是_.C___经过编译后生成文件的后缀是_.Obj___,经过链接后生成文件的后缀是.EXE____.
2.已知字母A的ASCII码为65。
以下程序运行后的输出结果是__67G__.
main()
{chara,b;
a='
A'
+'
5'
-'
3'
;
b=a+'
6'
2'
;
%d%c\n"
a,b);
}
1.有以下程序
#include<
stdio.h>
main(){
intx;
scanf(“%d”,&
x);
if(x<
=3);
elseif(x!
=10)
printf(“%d\n”,x);
}
程序运行时,输入的值在哪个范围才会有输出结果________B____
。
A)不等于10的整数B)大于3且不等于10的整数
C)大于3或等于10的整数D)小于3的整数
2.以下程序运行后的输出结果是___A_____________。
#include<
main(){
inta=1,b=0;
if(!
a)b++;
elseif(a==0)if(a)b+=2;
elseb+=3;
printf(“%d\n”,b)
A)0B)1C)2D)3
3.若有定义:
floatx=1.5;
inta=1,b=3,c=2;
则正确的switch语句是_____C______。
A)switch(x)
{
case1.0:
printf(“*\n”);
case2.0:
printf(“**\”);
}
B)switch((int)x);
{
case1:
case2:
printf(“**\n”);
C)switch(a+b)
case2+1:
D)switch(a+b)
casec:
case2:
4.以下程序运行后的输出结果是______B________。
#include<
inta=1,b=2;
while(a<
6){b+=a;
a+=2;
b%=10;
printf(“%d,%d\n”,a,b);
A)5,11B)7,1C)7,11D)6,1
5.以下程序运行后的输出结果是___B_______。
inty=10;
while(y--);
printf(“y=%d\n”,y);
A)y=0B)y=-1C)y=1D)while构成无限循环
6.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是___D_____。
A)n=0;
while((ch=getchar())!
=”\n”)n++;
B)n=0;
while(getchar()!
C)for(n=0;
getchar()!
=”\n”;
n++);
D)n=0;
for(ch=getchar()!
7.以下程序段中的变量已正确定义,则程序段的输出结果是____D______。
for(i=0;
i<
4;
i++,i++)
for(k=1;
k<
3;
k++);
printf(“*”);
A)******B)****C)**D)*
8.以下叙述中正确的是_____C_________。
A)break语句只能用于switch语句体中
B)continue语句的作用是:
使程序的执行流程跳出包含它的所有循环
C)break语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
9.有程序段:
intn=1;
do{n=++n*5;
while(n=10);
则此循环的循环体(D)
A:
执行1次B:
执行2次C:
不执行D:
执行无限次
10.以下程序的输出结果是(A)
main()
{inti;
for(i=1;
=5;
i++)
{
if(i%2)printf(“*”);
elsecontinue;
printf(“#”);
printf(“$”);
*#*#*#$B:
*#*#$C:
#*#*#*$D:
#*#*$
11.以下程序段是(C)
x=-1;
do
{x=x*x;
}while(!
死循环B:
循环执行两次
C:
循环执行一次D:
有语法错误
12.C语言中,逻辑“真”等价于C
大于零的数B:
大于零的整数C:
非零的数D:
非零的整数
13.C语言的switch语句中,case后B
只能为常量B:
只能为常量或常量表达式
可为常量及表达式或有确定值的变量及表达式D:
可为任何量或表达式
1.以下程序的功能是:
将输入的正整数按逆序输出。
例如:
若输入135,则输出531.请填空。
main()
{intn,s;
printf(“Enteranumber:
”);
scanf(“%d”,&
n);
printf(“Output:
do{s=n%10;
printf(“%d”,s);
_n/=10___;
}while(n!
=0);
printf(“\n”);
1.以下程序的输出结果是(987)
{intn=10;
while(n>
7)
{n--;
printf(“%d”,n);
}}
2.以下程序的输出结果是9,10
main()
{inti=010,j=10;
printf(“%d,%d”,++i,j--);
3.以下程序的输出结果是0123456789
{inti;
for(i=0;
10;
i++)
printf(“%d”,i);
4.以下程序的输出结果是(1,2,0)
inta=1,b=2,c=2,t;
while(a<
b<
c){t=a;
a=b;
b=t;
c--;
printf(“%d,%d,%d”,a,b,c);
5.#include<
{inti,j,sum;
for(i=3;
i>
=1;
i--)
{
sum=0;
for(j=1;
j<
=i;
j++)sum+=i*j;
printf(“%d\n”,sum);
1
编程题
1.编一个程序。
求出200-300之间的某些数,这些数应满足条件:
它们个位、十位、百位之积为42、之和为12。
#include“stdio.h”
main()
{inti,j,k;
i=2;
for(j=0;
=9;
j++)
{k=0;
while(k<
=9)
{if(i*j*k==42&
i+j+k==12)
printf(“i=%d,j=%d,k=%d.\n”,i,j,k);
k++;
2.编程判断输入的正整数是否既是5又是7的整倍数。
若是,输出yes,否则输出no。
#include<
intx;
printf(“pleaseinputanintegar:
%d"
if(x%5==0&
x%7==0)printf("
yes\n"
);
elseprintf("
no\n"
1.下列定义数组的语句中,正确的是__B________。
A)intN=10;
intx[N];
B)#defineN10
intx[N];
C)intx[0..10];
D)intx[];
2.若要定义一个具有5个元素的整形数组,以下错误的定义语句是____D______。
A)inta[5]={0};
B)intb[]={0,0,0,0,0};
C)intc[2+3];
D)inti=5,d[i];
3.以下程序运行后的输出结果是_____C_____。
{inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;
5;
i++)s=s+a[b[i]];
printf(“%d\n”,s);
A)6B)10C)11D)15
4.下面是有关C语言字符数组的描述,其中错误的是______D____。
A)不可以用赋值语句给字符数组名赋字符串
B)可以用输入语句把字符串整体输入给字符数组
C)字符数组中的内容不一定是字符串
D)字符数组只能存放字符串
5.以下程序运行后的输出结果是______C__________。
voidfun(intp)
{intd=2;
p=d++;
printf(“%d”,p);
{inta=1;
fun(a);
printf(“%d\n”,a):
A)32B)12C)21D)22
6.下面的函数调用语句中func函数的实参个数是________A_____。
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A)3B)4C)5D)8
7.以下程序运行后的结果是____A_______。
intfun()
{staticintx=1;
x+=1;
returnx;
inti,s=1;
for(i=1;
=5;
i++)s=fun();
printf(“%d\n”,s);
A)11B)21C)6D)120
8.若函数的形参为一维数组,则下列说法中正确的是B
调用函数时的对应实参必为数组名。
形参数组可以不指定大小。
形参数组的元素个数必须等于实参数组的元素个数。
形参数组的元素个数必须多于实参数组的元素个数。
9.在函数的说明和定义时若没有指出函数的类型,则A
系统自动地认为函数的类型为整型。
系统自动地认为函数的类型为字符型。
系统自动地认为函数的类型为实型。
编译时会出错。
10.以下对一维数组a进行不正确初始化的是A
inta[10]=(0,0,0,0);
B:
inta[10]={};
inta[]={0};
D:
inta[10]={10*2};
11.以下叙述中正确的是_________B_____。
A)C语言程序是由过程和函数组成的
B)C语言函数可以嵌套调用,例如:
fun(fun(x))
C)C语言函数不可以单独编译
D)C语言中除了main函数外,其他函数不可以作为单独文件形式存在
1.以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其他以此类推。
用#号结束输入,请填空。
ctype.h>
intnum[26]={0},i;
charc;
while(_c=getchar()_!
=’#’)
if(isupper(c))num[c-‘A’]+=__1__;
26;
i++)printf(“%c:
%d\n”,i+’A’,num[i]);
2.以下程序用以删除字符串中的所有的空格,请填空。
chars[100]={“our.tercherteachclanguage!
“};
inti,j;
for(i=j=0;
s[i]!
=’\0’;
if(s[i]!
=’’){s[j]=s[i];
j++;
s[j]=__s[i+1]___;
printf(“%s\n”,s);
3.以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数数值返回,请填空。
(设M、N已定义)
intfun(inta[N][M])
inti,j,row=0,col=0;
N;
M,j++)
if(a[i][j]>
a[row][col]){row=i;
col=j;
return__a[row][col]__;
1.以下程序的输出结果是(a+b=9)
inta=5;
intb=7;
intplus(intx,inty)
intz;
z=x+y;
return(z);
voidmain()
inta=4,b=5,c;
c=plus(a,b);
a+b=%d\n"
c);
2.#include<
intfun(intx)
{staticintt=0;
return(t+=x);
{ints,i;
for(i=1;
i++)s=fun(i);
}
15
1.编一个程序,计算任一输入的整数的各位数字之和。
#include“stdio.h”
#include“math.h”
{intn;
printf("
Enterainteger:
"
result:
func(n));
intfunc(intnum)
{ints=0;
num=abs(num);
do
{s=s+num%10;
num=num/10;
}while(num);
return(s);
2.通过调用自定义函数来完成求圆柱体的体积(v=3.14*r<
SUP>
2<
/SUP>
*h),
要求圆柱体的高和底半径在主函数中做输入,圆柱体的体积在主函数中做输出。
floatarea(floatr,floath)
floatv;
v=3.14*r*r*h;
returnv;
}
voidmain()
floatr,h,v;
scanf("
%f%f"
r,&
h);
v=area(r,h);
printf("
v=%f"
v);
}1.有以下程序C
char*s={“ABC”};
{printf(“%d”,*s%10);
s++;
}while(*s);
A)5670B)656667C)567D)ABC
2.以下程序运行后的输出结果是____B___________。
intm=1,n=2,*p=&
m,*q=&
n,*r;
r=p;
p=q;
q=r;
printf(“%d,%d,%d,%d\n”,m,n,*p,*q);
A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2
3.以下程序中关于指针输入格式正确的是____C________。
A)int*p;
p);
B)int*p;
scanf(“%d”,p);
C)intk,*p=&
k;
D)intk,*p;
*p=&
4.变量的指针,其含义是指该变量的B
值B:
地址C:
名D:
一个地址
阅读程序给出结果
1.#include<
#defineN5
intfun(int*s,inta,intn)
intj;
*s=a;
j=n;
while(a!
=s[j])j--;
returnj;
ints[N+1];
intk;
=N;
k++)s[k]=k+1;
printf(“%d\n”,fun(s,4,N));
3