C期中复习题.docx
《C期中复习题.docx》由会员分享,可在线阅读,更多相关《C期中复习题.docx(13页珍藏版)》请在冰豆网上搜索。
C期中复习题
《程序设计基础》期中复习题
一、单选题
1.按照C语言可以作为变量名的是()
A.www_007B.www//http:
C.3DD.ab$cd
2.一个C语言的程序是由()组成。
A.一个主程序和若干个子程序B.函数
C.若干个过程D.若干个子程序
3.每一个C语言程序必须有一个()。
A.main函数B.printf函数C.scanf函数D.自定义函数
4.以下语句运行时,能正确地给变量a,b赋值为a=1,b=2的输入是()
A.1,2B.2,1C.a=1,b=2D.a=2,b=1
inta,b;
scanf("a=%d,b=%d",&b,&a);
5.字符串“BEIJING┗┛2008”占用()字节内存。
A.12B.11C.13D.14
6.设x.y.z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为()
A.4B.16C.32D.52
7.一个C语言的程序是由()组成。
A.一个主程序和若干个子程序B.函数
C.若干个过程D.若干个子程序
8.C语言中用()作为逻辑“假”
A、trueB、0C、负数D、false
9.C语言中用()作为逻辑“假”
A、trueB、0C、负数D、NO
10.若w=1,x=2,y=3,z=4,则条件表达式ww:
yy:
z的值为()。
A.4B.3C.2D.1
11.当x为偶数时,下列()表达式的值为真.
Ax%2=0Bx%2==0Cx%2!
=0D!
x%2!
=0
12.语句printf(“%d”,a
a:
b);的功能是
A输出a,b中较大者B输出a,b中较小者
C交换a,b并输出D输出a与b的和
13.设x和y均为int型变量,则以下语句:
x+=y;y=x-y;x-=y;的功能是()
A.把x和y按从大到小排列B.把x和y按从小到大排列
C.无确定结果D.交换x和y中的值
14..以下程序的输出结果为
main()
{charc='z';
printf("%c",c-25);}
15.以下不正确的一维数组定义定义是()。
A.#definen5inta[n+2];
B.inta[5+2]={0,1,2};
C.intn=5,a[n+2];
D.inta[]={0,1,2,3,4,5,6};
16.以下程序运行后的输出结果是()
A2,0,B3,1,C3,2,1,D2,1,0
main()
{intn=4;
while(n--)printf("%d,",--n);}
17.有如下程序
main()
{intx=23;
doprintf("%d",x--);
while(!
x);}
程序执行后的输出结果是()
A321B23C不输出任何结果D陷入死循环
19.函数strlen(strcat(“very”,”good!
”))的值为()
A、9B、10C、11D、不确定
20.循环体中使用break语句的作用是()
A.立即终止整个循环B.继续执行break以后的循环
C.结束本次循环D.执行完本次循环后再跳出循环
21.以下数组定义中不正确的是()
A.inta[2][3];B.intb[][3]={9,2,1,5};
C.intc[10][10]={0};D.intd[3][]={{1,2,3},{4,5,6},{7,8,9}};
22.以下定义语句错误的是()
Ainta[]={1,2};Binta[][3]={1,2,3,4};
Cchars[10]=“test”Dintn=5,a[n];
23.以下程序的输出结果是()
main()
{charst[20]="hello\0\t\\";
printf("%d%d\n",strlen(st),sizeof(st));}
A99B520C1320D2020
二、填空题
1.从键盘输入整型变量a的值的C语言语句为。
2.当键盘输入为student【回车】时,语句ch=getchar();的值为。
3.在屏幕上输出float型变量a的指可以用语句。
4.在屏幕上输入float型变量a的指可以用语句。
5.语句y=a>0?
a:
-a;用if语句表示为。
6.语句
if(a>0)b=a;elseb=-a;
用条件表达式语句表示为。
7.字符型变量a不是大写字母的C语言表达式为。
8.当键盘输入为’a’【回车】时,语句charch=getchar();printf(“%c”,ch>=’A’?
ch+32:
ch);的结果为。
9.已知整型变量n的初值为3,h的初值为1,则执行语句doh=h*n--;while(n);后h的值为。
10.若chara[]=“Helloworld”;则strlen(a)=;数组a占个字节的内存.
11.“如果字符型变量c的值是数字,则变量d=d+1”的C语句是()
12.用PI表示常数3.14159的符号常数定义语句为.
13.设变量a,b,c能构成三角形,则它们组成等边三角形的C语言表达式为。
14.程序段
inta=8,s=1;
while(a>0)
{if(a%3)break;
S*=a--;
}
执行后变量s的值等于。
15.程序段
inta=6,s=0;
for(;a>=0;a--)
{if((a%4==0))break;
s+=a;
}
执行后,s的值等于
16.程序段
inta=2,s=0;
switch(a)
{
case2:
s+=2;
case3:
s+=3;break;
case1:
s+=1;break;
default:
s+=4;
}
printf("%d\n",s);
的执行结果是
17.设有定义:
inta[6]={0,2,4,6,8,10};引用数组元素10的C表达式为。
18.设有语句:
chars1[20]=”How”,s2[]=”areyou?
”;则执行语句strcpy(s1,s2);puts(s1);后,屏幕显示结果为。
19.设有语句:
chaars1[]=”Hello”,s2[]=”Help”;则表达式strcmp(s1,s2)的值为。
20.设有定义:
chara[3][20]={“Basic”,”Forxpro”,”VisualC++”};语句printf(“%s”,a[1]);的输出结果为。
三、阅读程序,写出运行结果。
1.#include
voidmain()
{
inta,b,c,m,n;
scanf("%d%d%d",&a,&b,&c);
if(a
elseif(belsem=c;
if(a>b&&a>c)n=a;
elseif(b>a&&b>c)n=b;
elsen=c;
printf("max=%d,min=%d\n",m,n);
}
运行时输入:
5空格2空格8回车。
结果
2.以下程序的输出结果是:
voidmain()
{
inti;
for(i=10;i<=30;i++)
if(i%6)continue;
printf(“%d”,i);
}
3.以下程序的输出结果是:
voidmain()
{
inti;
for(i=10;i<=30;i++)
if(i%5==0)continue;
printf(“%d”,i);
}
4.以下程序的输出结果是:
voidmain()
{
inti;
for(i=10;i<=30;i++)
if(i%5)break;
printf(“%d”,i);
}
5.当输入为8时,以下程序的输出结果是:
voidmain()
{intx,y;
scanf("%d",&x);
printf("y=%d\n",x<0?
1:
x==0?
0:
-1);
}
6.以下程序的输出结果是
voidmain()
{intn;
for(n=20;n>=10;n--)
{if(n%4)continue;
printf("%d\n",n);}}
7.以下程序的运行结果是:
#include
voidmain()
{
charc1[]=“fox”,c2;
inti=0;
scanf(“%c”,&c2);
while((c1[i]!
='\0')
{
if(c1[i]!
=c2)
printf("%c",c1[i]);
else;
i++;
}
}
运行时键盘输入f【回车】后,结果为:
。
8.#include
voidmain()
{
inti,a,s=0;
printf("请输入10个正整数a:
\n");
for(i=1;i<=10;i++)
{
scanf("%d",&a);
s+=a;
if(a<0)
{
s=s-a;
break;
}
}
printf("s=%d\n",s);
}
运行时键盘输入:
1,2,3,-4,5,6,7,8,9,10【回车】,程序的运行结果为:
。
9.以下程序的输出结果是:
#include
voidmain()
{
chara[]="CProgram";
inti;
for(i=0;a[i]!
='\0';i++)
{
if(a[i]>='a'&&a[i]<='z')
a[i]-=32:
elseif(a[i]>='a'&&a[i]<='z')
a[i]+=32;
printf("%c",a[i]);
}
程序的运行结果为。
10.#include
voidmain()
{
charc1,c2='y';
while((c1=getchar())!
='\n')
{
if(c1==c2)
continue;
printf("%c",c1);
}
}
运行时键盘输入never【回车】后,结果为:
。
11.以下程序的输出结果是:
#include
voidmain()
{
inti,n;
doubleproduct;
printf("inputn:
\n");
scanf("%d",&n);
product=1;
for(i=1;i<=n;i++)
product=product*i;
printf("product=%.0f\n",product);
}
当键盘输入5【回车】时,程序的运行结果为:
。
四、程序分析与程序填空
1.以下程序的功能是从键盘输入半径r的值,计算并输出球面积s和球体积v。
请在程序的空白处填上适当的语句或表达式,使完成所需功能。
#include
//定义符号常量PI,使其值为3.14159
voidmain()
{
//定义实型变量r,s和v;
printf(“请输入半径r:
\n");
//输入实型变量半径r的值
s=4*PI*r*r;
v=//计算球体积;
//分两行输出面积和体积
}
2.#include
voidmain()
{
intn,p=1;
scanf(“%d”,&n);
if(n==0||n==1)
p=1;
else
for(;n>1;n--)
p=p*n;
装订线内请勿答题
…………………………………………………………..装………………….订…………………..线………………………………………………………
printf("%d\n",p);
}
该程序的功能是:
________________________________
3.下列程序的功能是输入一个字符,如果输入的字符是大写字母则将其转换成小写,如果输入的小写字母则将其转换为大写后输出,其它字符则原样输出。
请填空。
#include
voidmain()
{
charc;
printf(“请输入一个字符:
\n”);
;//输入字符c
//如果c是小写字母
c-=32;
elseif()//如果c是大写字母
;//转换为小写字母
;//输出转换结果
}
4.以下程序以每行10个数据的形式输出数组a的元素,请填空。
#include
voidmain()
{
inti,a[50];
printf(“输入50个整数:
\n”);
for()
scanf();
for(i=0;i<50;i++)
{
if()
;
printf(“%5d”,a[i]);
}
}
5.以下程序的功能是键盘输入被除数x和除数y的值,然后计算并输出x/y的值。
计算前先判断除数是否为0,如果除数为0,则返回-1。
请填空。
#include
Voidmain()
{
x,y,z;//定义浮点型变量x,y,z
scanf();//输入x和y
if()z=-1;//如果除数为0,令z=-1
elsez=x/y;
printf(“z=%f\n”,z);
}
6.#include
voidmain()
{
charch;
intcc=0,bc=0,dc=0,oc=0;
printf("Pleaseinputalineofcharicts:
\n");
while((ch=getchar())!
='\n')
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
cc=cc+1;
elseif(ch>='0'&&ch<='9')
dc=dc+1;
elseif(ch=='')
bc=bc+1;
elseoc=oc+1;
}
printf("Thereare%dcharacts,%ddigit,%dblank,%dother",cc,dc,bc,oc);
}
本程序的功能为:
其中cc表示:
bc表示:
dc表示:
oc表示:
7.#include
voidmain()
{
intk,p;
ints[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])
k=p;
printf("%d\n",k);
}
该程序的功能是:
________________________________
六、编写程序。
1.从键盘输入n个数,找出其中最大值和最小值,请编写相应的程序。
2.编写并调试一个可以输出乘法九九表的程序。
3.输入一字符串(以回车结束,少于20个字符),将其中大写字母用下列对应替换,然后输出替换后的字符串。
替换规则:
A←→Z;B←→Y,……,
4.设分段函数y=f(x)定义为
试编写程序,从键盘输入自变量x的值,输出函数y的值。
建议:
先画出程序的流程图,再编程
5.编写一个可以对n个字符串进行排序的程序。
要求:
n个字符串由键盘输入。
6.编写一个可以对n个数组元素进行排序的程序。
要求:
n个数组值由键盘输入。
7.从键盘输入两个整数m和n(m请编写相应的程序。
8.编写程序:
计算1+3+5+7+…99。
9.编写程序计算1+4+7+10+…199。
10.编写程序计算1+5+9+13+…+197。