C语言复习题_c语言复习题
C语言复习题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言复习题”。
1、.char型变量的长度为_b__个字节选择一项: a.3 b.1 c.4 d.22、C语言程序开头的#define表示:____c_________选择一项: a.定义变量
b.主函数 c.定义常量 d.预处理
3、short型变量的长度为_c__个字节选择一项: a.1 b.3 c.2 d.44、一个C语言程序总是从____b_____开始执行。选择一项: a.主程序 b.主函数 c.子程序 d.函数
5、一个C语言程序是由______d___组成。选择一项: a.子程序
b.主程序
c.过程
d.函数
6、以下哪种不属于C语言的变量类型? c a.双精度型 b.单精度型 c.多精度型 d.整型变量
7、如果有语句scanf(“%1d%d”,&a,&b);则在输入了123 45后,b的值为:_____d__选择一项: a.12345 b.123 c.45 d.23
8、如果要定义一个变量用于精确输入中国人口总数,则应该把变量类型定义为:_a____选择一项: a.long b.char c.short d.float
9、如果要定义一个变量用于输入商品单价,则应该把变量类型定义为:____d___选择一项: a.short b.int c.char d.float10、如果要求ax+b=0的根(a不等于0),则下面可以求x的值的方法是:_d___选择一项: a.ax+b=0 b.以上都不对 c.a+b=0 d.x=-b/a11、如果要计算x的平方并赋值给y,一般使用的方法是:_____c___选择一项: a.y=x*x b.y=x^2 c.y=pow(x,2)d.y=x212、定义圆周率为常数的方法是____b_选择一项: a.const float PI=3.14;b.#define PI 3.14 c.以上都不对 d.float PI=3.14;
13、已知变量c为字符型,且c='A',则执行c+=33后,c的值变为:_b_______选择一项: a.'A' b.'b' c.'B' d.'a'
14、无符号short型能表示的数的范围是:____b_____选择一项: a.0~65536 b.0~65535 c.-32768~32767 d.0~25515、语句printf(“%2f”,0.418)会输出:_____a_____选择一项: a.0.418000 b.0.418 c.0.41 d.0.42
16、输出语句printf(“%-5d”,123)会输出__a__选择一项: a.123__(_表示空格,下同)b.--123 c.以上都不对 d.__123 char型变量只能存放字符,不能用于存放数字 × C程序中可以用“=”为常量赋值选择一项:×
C程序中,变量的值是可以变化的选择一项:√ 一个C语言程序可以不包含主函数选择一项:×
一个C语言程序可以包含一个以上的主函数选择一项:× 变量可以多次赋值选择一项:√ 只要是以字母或下划线开头,全部由字母、数字和下划线组成的,长度不超过8个的标识符,都可以用来做变量名 选择一项:×
可以在定义变量的时候就对它赋值选择一项 √
定义了一个int变量x后,如果要用它存放实数,可以再把它定义为float型,即:int x;float x;×
定义多个变量时可以同时对它们进行赋值,如:int x=y=0;×
1、已知int x=10,y=20,z=30;,以下语句执行后x,y,z的值是_______。if(x>y)z=x;x=y;y=z;printf(“%d,%d,%d”,x,y,z);选择一项: a.20,30,30 b.10,20,30 c.20,30,20 d.20,30,10
正确答案是:20,30,30
'
2、若以下变量均是整型,且有语句num=sum=7;,则执行表达式++sum,++num后sum的值是_________。选择一项: a.9 b.10 c.7 d.8
正确答案是:8
3、下面不正确的C语句是
。选择一项: a.a=--a b.a=3++;c.a=a--;d.a=++a;
正确答案是:a=3++
4、下面不正确的C语句是
。选择一项: a.if(x>0)x=x;b.if x>0 x=x+2;c.if(x
正确答案是:if x>0 x=x+2;
5、下面不正确的C语句是
。选择一项: a.x&&=2;b.x/=x;c.x%=2;d.x+=2;
正确答案是:x&&=2;
6、下面输出结果为2的C语句是
。选择一项: a.printf(“%d”,(x=0,x=++x));b.printf(“%d”,(x=0,x=x++));c.printf(“%d”,(x=1,x=x++));d.printf(“%d”,(x=1,x+=x));
正确答案是:printf(“%d”,(x=1,x+=x))
7、以下不符合C语言语法的赋值表达式是_________。选择一项: a.a=9+e b.a=9 c.a[0]=2 d.a+2=x
正确答案是:a+2=x
8、以下运算符优先级最低的是__________选择一项: a.& b.!= c.&& d.||
正确答案是:||
9、在C语言中,要求运算数必须是整型的运算符是_______。选择一项: a.% b.++ c.!= d./
正确答案是:%题目
10、若x、i、j都是int型变量,则执行下面表达式x=(i=4,j=4,i+j)后x的值为_________。选择一项: a.52 b.4 c.8 d.32
反馈正确答案是:8
11、若以下变量均是整型,且有语句num=sum=7;,则执行表达式++sum,++num后sum的值是_________。选择一项: a.8 b.7 c.10 d.9
正确答案是:8
12、若有定义:
int a=7;
float x=2.0,y=4.0;则表达式x+a%3*(int)(x+y)的值是_________。选择一项: a.3.5 b.8 c.2.5 d.4.5
正确答案是:8
C语言规定if和else必须成对使用。×
C语言规定,else总是与它上面的最近的if配对: × if语句可以嵌套使用。√
switch„case结构中case后的表达式必须为常量表达式。:√
switch„case结构中条件表达式和常量表达式值可以为float类型。×
switch后面圆括号内的表达式的值和case后面的常量表达式的值都必须是整型或字符型,不允许是浮点型。对
所有关系运算符的运算优先级相同。×
语句int a=2;if(a=3)b=1;执行后b的值是1。√
1、下面程序段的运行结果是_______。int a=1,b=2,t;while(a
反馈正确答案是:2,1
2、以下程序执行后的输出结果是_____。#include “stdio.h” main(){
int i,s=0;
for(i=1;i
printf(“%dn”,s);} 选择一项: a.25 b.26 c.21 d.20
答案是:25
3、循环语句for(int a=0;a
b.循环次数不定
c.循环4次
d.循环体循环执行3次
正确答案是:循环体循环执行3次
4、设有程序段:
int i=5;while(i==0)i--;
则下面描述中正确的是_______。选择一项: a.循环是无限循环
b.循环体语句一次也不执行
c.循环体语句执行一次
d.while循环执行5次
正确答案是:循环体语句一次也不执行
5、设有程序段: int k=10; while(k==0)k=k-1;则下面描述中正确的是_______。选择一项: a.循环是无限循环
b.while循环执行10次
c.循环体语句执行一次
d.循环体语句一次也不执行
正确答案是:循环体语句一次也不执行
6、设有程序段:int k=5;while(k>0)k--;则下面描述中正确的是_______。选择一项: a.循环体语句执行5次
b.循环体语句一次也不执行
c.循环是无限循环
d.while循环执行5次
正确答案是:循环体语句执行5次
'C语言中while和do-while循环的主要区别是do-while允许从外部转到循环体内选择一项: 错
'for循环体语句中,可以包含多条语句,但要用花括号括起来选择一项:√ '执行for(I=0;I
break语句和continue语句不可以同时出现在同一个循环体内:× break;语句执行时结束本次循环,开始下一次循环。: × break;语句执行时退出到包含该break;语句的循环。:√ continue语句的作用是结束整个循环的执行: ×
C语言中while和do-while循环的主要区别是do-while循环只能用break语句退出循环: × C语言中while和do-while循环的主要区别是do-while循环只能用continue语句退出循环: ×
C语言中while和do-while循环的主要区别是do-while的循环体不能是复合语句: ×
C语言中while和do-while循环的主要区别是do-while的循环体至少无条件执行一次:√
C语言中while和do-while循环的主要区别是while的循环控制条件在前: × c语言中不能使用do-while语句构成循环嵌套: × c语言中不能使用for语句构成循环嵌套: × c语言中不能使用while语句构成循环嵌套: × c语言中只能使用for语句构成循环嵌套: ×
C语言中,do-while语句构成的循环只能用break语句退出。×
do—whiLe语句构成的循环,当while后的表达式值为零时结束循环:√ do—whiLe语句构成的循环,当while后的表达式值为非零时结束循环: ×
do„while语句的循环体至少执行1次,while和for循环的循环体可能一次也执行不到。√ for、while、do-while循环中的循环体均可以由空语句构成:√ for循环只能用于循环次数已经确定的情况: × for循环是先执行循环体语句,后判定表达式: ×
for循环表达式的括号内的3个表达式均不可以省略: × while循环是先判断表达式后执行循环体语句:√ 从多层循环嵌套中退出时,只能使用goto语句: × 只能在循环体内和switch语句体内使用break语句:√ 在for循环中,不能用break语句跳出循环体:×
在循环中使用break 语句的功能是使程序执行结束: ×
在循环中使用break 语句的功能是终止本次循环,继续下次循环: × 在循环中使用break 语句的功能是跳出包含此break语句的所有循环: × 在循环体内使用break语句或continue语句的作用相同: ×
在循环外的语句不受循环的控制,在循环内的语句也不受循环的控制。: × 强制终止死循环可以使用CTRL+BREAK组合键:√ V 所有类型的循环都可以进行嵌套使用选择一项:√
执行语句for(i=0;i
用1作while循环的判断条件,则循环一次也不执行: ×
由int i=-1;while(i
程序有死循环的时候,上机编译不能通过: ×
程序段x=-1;do{x=x*x;} while(!x);循环体执行一次:√ 程序段x=-1;do{x=x*x;} while(!x);循环体执行二次: × 程序段x=-1;do{x=x*x;} while(!x);是死循环: × 程序段x=-1;do{x=x*x;} while(!x);有语法错误:×
1、下面程序段的运行结果是_______。char a[7]=“abcdef”;char b[4]=“ABC”;strcpy(a,b);
printf(“%c”,a[5]);选择一项:
a.e b.f
c.一个空格
d.
正确答案是:f2、判断字符串c,d是否相等,应当使用_________.选择一项: a.if(strcmp(c,d)==0)b.if(c==d)
c.if(strcpy(c,d))d.if(c=d)
正确答案是:if(strcmp(c,d)==0)
3、判断字符串str1,str2是否相等,应当使用()选择一项: a.if(str1==str2)
b.if(str1=str2)
c.if(strcpy(str1,str2))d.if(strcmp(str1,str2)==0)
正确答案是:if(strcmp(str1,str2)==0)
4、有下面程序段, 则_______。char a[3],b[]=“China”;a=b;printf(“%s”,a);选择一项: a.运行后将输出Chi b.运行后将输出Ch c.编译出错
d.运行后将输出China 正确答案是:编译出错
5、有如下数组声明” int values[30];”,下标值引用错误的是选择一项: a.values[30] b.values[10] c.values[0] d.values[20]
正确答案是:values[30]
6、给字符数组a、b的首元素赋值,应当使用语句_______。选择一项: a.a[1]=1,b[1]==2;b.a[0]=1;b[0]=2;c.a[1]==1,b[1]=2 d.a[0]==1,b[0]==2
正确答案是:a[0]=1;b[0]=2;
C语言中,在对全部数组元素赋初值时,必须指定数组的长度。× C语言中,字符串以' '为结束标志。选择一项:√ C语言中,字符串以'1'为结束标志。选择一项: ×
C语言中,数组元素在内存中是顺序存放的,它们的地址是连续的。选择一项:√ C语言中,数组元素的下标是从0开始的,下标不能越界。选择一项:√ C语言中,数组元素的下标是从1开始的,下标不能越界。选择一项: ×
C语言中,数组名是一个常量,是数组首元素的内存地址,可以重新赋值。选择一项: × C语言中,用格式符“%s”输入字符数组时,数组名前不能加&。选择一项:√ 一个数组中的所有元素可以具有不相同的数据类型。选择一项: × 使用字符串处理函数strcmp需要包含头文件string.h。选择一项:√
假设int型变量占两个字节的存储单元,若有定义:
int x[10]={0,2,4};
则数组x在内存中所占字节数为10 ×
已知字符数组str1的初值为“China”,则语句str2=str1;执行后字符数组str2也存放字符串“China”。×数组大小可变,但是同一数组中所有数组元素的类型必须相同:× 数组大小可变,同一数组中可以有不同类型的数组元素 × 数组大小固定,但是同一数组中可以有不同类型的数组元素 × 数组大小固定,同一数组中所有元素的类型必须相同
√ 数组定义int a[]=”string”;不合法:√
若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小不确定 × 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是3 :√
1、编程统计高等数学(分数为:65,34,75,55,85,45,95,90,80,70)及格的学生的平均成绩 提示:
for(int i=0;i60){ sum+=xs[i];n++;} } „„
2、请编写一个函数计算购买商品的折扣金额,其中折扣率为90%,调用该函数计算并输出3种商品(单价分别为:6.50、12.50、10.00,数量分别为30、20、40)的折扣金额。
其中,函数可定义为: …… double getMoney(double price, int num){ …… } void main(){ printf(“商品一折扣金额=%.2fn”, getMoney(6.50,30));printf(“商品二折扣金额=%.2fn”, getMoney(12.50,20));printf(“商品三折扣金额=%.2fn”, getMoney(10.00,40));}
3、编写一个查表程序,即若干个数据存放在一个表(数组)中,程序运行时任意输入一个数,找出并输出表中大于该数的所有数。
代码提示: ……
scanf(“%d”,&x);for(int i=0;ix)printf(“%dn”, a[i]);} ……
4、编程统计符合助学金发放标准的学生人数,标准是学习成绩及格并且家庭收入低于每月2000元。
提示如下:
o o 定义两个数组,一个是成绩数组cj[10],一个是家庭收入数组sr[10] 关键代码:
……
for(int i=0;i=60 && sr[i]
5、请写程序求出1-20的偶数和。
6、编程统计1,5,6,7,9,12,15,6,3,9中有几个可以被5整除的数。
7、编程统计1,5,6,7,9,12,15,6,3,9中有几个可以被5整除的数。
8、编写函数fun计算表达式x+2y+3z的值,其中x、y、z为整型参数。
9、编写函数getnum(int a[], n),找出并返回含n个元素的整型数组中的最小值或最大值。
10、编写程序,找出数组中的最小值或最大值。
编程题目重点内容: 多分支选择结构
求数组的最大值,最小值,平均值及大于(或小于)平均值的数 循环及循环嵌套的应用
求某区间范围的奇数和、偶数和或奇数个数(偶数个数),引申题目为“被n整除的数” 函数的定义及调用
以下是课堂中讲得较少的题目,复习时注意查漏补缺。
编程求一元二次方程a*x*x+b*x+c=0的实根(a,b,c都为整数),要求系数a,b,c从键盘输入,若无实根有相应提示。
#include “stdio.h” #include “math.h” main(){ int a,b,c,d;float x1,x2;scanf(“%d%d%d”,&a,&b,&c);d=b*b-4*a*c;if(d>=0){
x1=(-b+sqrt(d))/2*a;
x2=(-b-sqrt(d))/2*a;
printf(“x1=%f,x2=%fn”,x1,x2);} else
} printf(“此方程没有实根!”);
编写函数fun计算表达式x+2y+3z的值,其中x、y、z为整型参数。
int fun(int x,int y,int z){ return x+2*y+3*z;}
编写一个与strlen函数功能一样的函数(测试字符串长度函数),用其测试任意输入的字符串的长度,并输出结果。
#include “stdio.h” main(){ char a[100];int i=0;gets(a);while(1){
if(a[i]!=' ')
i++;
else
break;
} printf(“%dn”,i);
}
请编程计算并输出数据30.5,55.0,70.4,77.0,100.0,50.8的平均值和小于平均值的数据。
#include “stdio.h” main(){ float a[6]={30.5,55.0,70.4,77.0,100.0,50.8};float sum=0,ave;int i;for(i=0;i
sum=sum+a[i];ave=sum/6;printf(“ave=%fn”,ave);for(i=0;i
if(a[i]
printf(“%.1f ”,a[i]);} }
读小学的小明同学数学考试不及格,加法题的错误特别多,父亲得知后决定要惩罚他,惩罚措施如下:计算式子1+1=2,2+2=4,4+3=7,7+4=11,...一直算下去,直到某个加式的结果大于1000为止,请问小明一共要写多少个加式?试编程实现之。
#include “stdio.h” main(){ int i,sum;sum=1;for(i=1;sum
sum=sum+i;} printf(“%dn”,i);
}
设有鸡兔同笼,头共35个,脚共94只,求鸡和兔各几只 #include “stdio.h” main(){ int ji,tu;for(ji=1;ji
tu=35-ji;
if(2*ji+4*tu==94)
printf(“ji=%d,tu=%dn”,ji,tu);
} }
输入三个数存入变量a,b,c并进行交换,最后a,b,c三个变量的内容从小到大排列并输出
对输入的温度进行判断,如果低于20度则输出“冷”,21-26输出“适宜”,27以上输出“热”
#include “stdio.h” main(){ int t;
printf(“请输入温度”);scanf(“%d”,&t);if(t=21 && t
}
公共C考试注意事项: 1.“两证齐全”:务必带上学生证(或一卡通)与身份证;
2.提前进场检验电脑是否一切正常,如有无法使用情况,及时报告监考老师申请换位置; 3.考试过程中如遇电脑死机,重启等问题,不要自行处理,及时报告监考老师。4.在没做完试卷前,请勿点击“交卷”按钮。5.考试中不定时查看考试界面右下角的“剩余时间”,如遇长时间不动,报告监考老师处理。6.交卷后不要在考场附近逗留影响未交卷考生。
7.交卷后请勿打电话向课任老师求分,如有这种情况,酌情扣减平时成绩。8.考试后3-5天,可在教务系统查询分数,如对分数有异议,可要求查分。