最新C程序设计试题汇编汇总.docx
《最新C程序设计试题汇编汇总.docx》由会员分享,可在线阅读,更多相关《最新C程序设计试题汇编汇总.docx(14页珍藏版)》请在冰豆网上搜索。
最新C程序设计试题汇编汇总
C程序设计试题汇编
C程序设计试题汇编
1.3以下叙述正确的是______
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
2.2若x、y、j和k都是int型变量,则计算下面表达式后,x的值为______
A)7B)16C)32D)52
答案:
C
2.6下面四个选项中,均是不合法的用户标识符的选项是______
A)AB)floatC)b-aD)_123
P_0la0gototemp
Do_AintINT
2.23以下不正确的叙述是______
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D)当键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
2.30若有说明语句:
charc=’\72’;则变量c______
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法,c的值不确定
2.37在C语言中,char型数据在内存中的存储形式是______
A)补码B)反码C)原码D)ASCII码
3.2以下程序的输出结果是______.(注:
︼表示空格)
main()
{printf(“\n*s1=%15s*”,”chinabeijing”);
printf(“n*s2=%-5s*”,”chi”);
}
A)*s1=chinabeijing︼︼︼*B)*s1=chinabeijing︼︼︼*
*s2=**chi**s2=chi︼︼︼*
C)*s1=*︼︼chinabeijing*D)*s1=︼︼︼chinabeijing*
*s2=︼︼chi**s2=chi︼︼
3.11已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列
开始输入数据时,正确的数据输入方式是______(注:
表示回车)
inta1,a2;charc1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
A)1020ABB)10︼20
AB
C)10︼︼20︼︼ABD)10︼20AB
3.15根据题目中已给出的数据的输入形式和输出形式,程序中输入输出语句的正确内容是
______
main()
{intx;floaty;
prinf(“enterx,y:
”)
输入语句
输出语句
}
输入形式enterx,y:
2︼3.4
输出形式x+y=5.40
A)scanf(“%d,%f”,&x,&y);
prinf(“\nx+y=%4.2f”,x+y);
B)scanf(“%d%f”,&x,&y);
prinf(“\nx+y=%4.2f”,x+y);
C)scanf(“%d%f”,&x,&y);
prinf(“\nx+y=%6.1f”,x+y);
D)scanf(“%d%3.1f”,&x,&y);
prinf(“\nx+y=%4.2f”,x+y);
3.46有一输入函数scanf(“%d”,k);则不能使float类型变量k得到正确数值的原因是[1]和[2]
答案:
[1]未指明k的地址
[2]格式控制符与变量类型不匹配
scanf语句的正确形式应该是:
scanf(“%f”,&k);
4.4能正确表示”当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是______
A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B)(x>=1)||(x<=10)||(x>=200)||(x<=210)
C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)
4.7设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是______
A)’x’&&’y’
B)x<=y
C)x||y+z&&y-z
D)!
((xz||1)
4.18以下if语句语法正确的是_____
A)if(x>0)
prinf(“%f”,x)
elseprinf(“%f”,-x);
B)if(x>0)
{x=x+y;prinf(“%f”,x);}
elseprinf(“%f”,-x);
C)if(x>0)
{x=x+y;prinf(“%f”,x);};
elseprinf(“%f”,-x);
D)if(x>0)
{x=x+y;prinf(“%f”,x)}
elseprinf(“%f”,-x);
4.35当a=3,b=2,c=1时,表达式f=a>b>c的值是[0].
答案:
0
4.59有inta=3,b=4,c=5,x,y;,则以下表达式的值为[]
!
(x=a)&&(y=b)&&0
答案:
0
4.70以下程序对输入两个整数,按从达到小顺序输出.请在[]内填入正确内容.
Main()
{
intx,y,z;
scanf(“%d,%d”,&x,&y);
if([1])
{z=x;[2]}
pringf(“%d,%d”,x,y);
}
答案:
[1]x[2]x=y;y=z;
4.77请阅读下面的程序:
main()
{ints,t,a,b;
scanf(“%d,%d”,&a,&b);
s=1;
t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
elset=2*s;
prinf(“s=%d,t=%d”,s,t);
}
为了使输出结果t=4,输入量a和b应满足的条件是[].
答案:
04.114请读程序:
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
}
prinf(“a=%d,b=%d”,a,b);
}
上面程序的运行结果是_____
答案:
a=2,b=1
5.14C语言中while和do-while循环的主要区别是______
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
答案:
A
5.28若I为整型变量,则以下循环执行次数是______
for(I=2;I==0;)prinf(“%d”,I--);
A)无限次B)0次C)1次D)2次
答案:
B
5.36下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空.
#include
main()
{intI,sum=0;
for(I=1;I<=50;I++)
if([1])sum+=I;
prinf(“%d”,sum);
}
A)(int)(I/7)==I/7B)(int)I/7==I/7C)I%7=0D)I%7==0
答案:
D
5.47以下是死循环的程序段是______
A)for(I=1;;)
{if(++I%2==0)continue;
if(++I%3==0)break;
}
B)I=32767;
Do{if(I<0)break;}while(++I);
C)for(I=1;;)if(++I<10)continue;
D)I=1;
While(I--);
答案:
C
5.60下面程序的功能是用”辗转相除法”求两个正整数的最大公约数.请填空.
#include
main()
{intr,m,n;
scanf(“%d%d”,&m,&n);
if(mr=m%n;
while(r){m=n;n=r;r=[2];}
prinf(“%d\n”,n);
}
答案:
[1]r=m,m=n,n=r
[2]m%n
5.68下面程序的功能是用do-while语句求1之1000之间满足”用3除余2;用5除余3;用
7除余2”的数,且一行只打印五个数.请填空.
#include
main()
{intI=1,j=0;
do{if([1])
{prinf(“%4d”,I);
j=j+1;
if([2])prinf(“\n”);
}
I=I+1;
}while(I<1000);
}
答案:
[1]I%3==2&&I%5==3&&I%7==2
[2]j%5==0
5.105每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果
个数达到不超过100的最大值.编写程序求每天平均花多少钱?
答案:
略
C语言习题集与上机指导
1.9编写一个求0~100之间全部偶数之和的程序.
运行结果:
sum=2550
1.13请设计下列算法.
(5)求两个正整数m和n的最大公约数
答案:
略
2.4写一个程序测试你所用的C版本中的float型数据所占的字节数.
运行结果:
b=4
2.6下列常数中哪些是合法的C常量,哪些是非法的C常量?
对合法者指出其类型,对非法者
指出其原因.
-0.23-0x2a10x7ge30003
3.e-5‘\n’“x-y”‘{‘12.5e2“105”
‘105’“35’53”3+535o7”πe
2E5‘AB’0x2.5b03e5±7f7ff
2e-31012356e3e+2.35e+0lg3
答案:
合法的常量如下
-0(实型常量)
-0x2al(十六进制长整型常量)
0003(八进制整型常量)
5e+0(实型常量)
3.e-5(实型常量)
2E5(实型常量)
‘{‘(字符常量)
‘\n’(一种特殊形式的字符常量---转义字符)
“105”(字符常量)
“x-y”(字符常量)
“35’55”(字符常量)
不合法的常量如下:
23(表示形式不对)
0x(超出十六进制表示的数字)
e3(e前必须有数字)
12.5e2(表示形式不对)
‘105’(单引号中应为单个字符)
‘AB’(单引号中应为单个字符)
3+5(这是表达式,不是常量)
35o7”(无字符”o”)
π(无此字符)
e(e前应有数值,e后应跟整数)
03e5(表示形式不对)
±7f(±不能同时出现,十六进制数应以0x开头)
7ff(应以0x开头)
2e-310(超出范围)
12356e(e后应跟整数)
3e+2.3(e后应跟整数)
lg3(表示形式不对)
0x2.5b(表示形式不对)
2.8在下列符号中,你可以选哪些做变量名?
哪些不可以?
为什么?
a3B3aBπ+ab*xs
bb5ifnextdaye2ok?
intgermaxnumberi*j
答案:
可做变量名的为:
a3Bbsb5nextdayintgermaxnumber
剩余的均不可做变量名,因为,C语言给变量起名的规定是:
由字母、数字和下划线
三种字符组成,且第一个字符必须是字母或下划线(习惯上,变量名用小写字母表示).
2.28指出下面程序段中的错误,并改正.
Main()
{
inta;
floatb;
fcharc;
scanf(“%c%d%c%f;c,b,a,b);
}
答案:
1.字符变量标识符多写一个f;2.格式输入函数名有错;3.scanf函数中格式字
符与数据类型不匹配;4.少了一个双引号.正确的应为:
charc;
scanf(“%c%f%d%f\n”,&c,&b,&a,&b);
3.11把下列程序改写得更合理.
(1)
while(A)
{
if(B)continue;
C;
}
(2)
do
{
if(!
A)continue;
elseB;
C;
}while(A)
答案
(1)可改写为:
while(A)
{
if(!
B)C;
}
(2)可改写为:
do
{
if(A)
{
B;
C;
}
}while(A)
3.12指出下面三个程序的功能.当输入为:
”quert?
”时,它们的执行结果是什么?
(1)
#include”stdio.h”
main()
{
charc;
c=getchar();
while(c!
=’?
’)
{
putchar(c);
c=geetchar();
}
}
(2)
#include”stdio.h”
main()
{
charc;
while((c=getchar())!
=’?
’)putchar(++c);
}
(3)
#include”stdio.h”
main()
{
while(putchar(getchar())!
=’?
’);
}
答案:
(1)的功能是:
显示从键盘输入的每一个字符,当输入”?
”时结束.
执行结果是:
quert
(2)的功能是:
显示从键盘输入的每一个字符的下一个字符(按字母顺序排
列),当输入”?
”时结束.
执行结果是:
rvfsu
(3)的功能与
(1)相同,但输出结果中多一个”?
”
3.18换零钱,把一元钱全兑换成硬币,有多少种兑换方法?
答案:
略
3.38打印出以下图案.
*
***
*****
*******
*****
***
*
答案:
略