C语言程序设计习题集16套.docx
- 文档编号:29133731
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:53
- 大小:51.58KB
C语言程序设计习题集16套.docx
《C语言程序设计习题集16套.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集16套.docx(53页珍藏版)》请在冰豆网上搜索。
C语言程序设计习题集16套
C语言程序设计试题集(第1套)
一、单项选择题(每题2分,共20分)
1、以下叙述不正确的是
A)C程序由函数构成
B)一个C程序至少包含一个main函数
C)main函数可以调用main函数
D)main函数是每个程序执行的起始点
2、C程序中能直接让机器执行的文件是
A)编辑后的.c源文件
B)通过编译的.obj文件
C)通过连接的.exe文件
D)编辑后的.bak文件
3、假设定义变量如下:
intx;
floaty;
以下输入语句中哪个是正确的?
A)scanf(“%f%d”,&y,&x);B)scanf(“%f%d”,y,x);
C)scanf(“%f%f”,&y,&x);D)scanf(“%d%d”,&y,&x);
4、已知:
inta[][3]={1,2,3,4,5,6};则数组a的第一维的大小是
A)2B)3C)4D)无确定值
5、.如果switch表达式是char变量code,下面哪一个case子句是合法的。
A)case“3”:
B)case‘3’:
C)case3:
D)case=3:
6、能正确表示”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)
7、C语言中while和do-while循环的主要区别是
A)do-while循环至少无条件执行一次,而while循环可能一次也不执行
B)while循环控制条件比do-while循环控制条件严格
C)do-while循环允许从外部转到循环体内,而while循环不允许
D)do-while的循环体可以是复合语句,而while循环不可以是复合语句
8、下面哪一项函数的头部是有效的?
A)one(intaintb)
B)intthisone(charx)
C)charanother(inta,b)
D)doubleyetanother
9、若有定义charx[]="12345";chary[]={'1','2','3','4','5'};则
A)x数组与y数组的长度相同B)x数组长度大于y的长度
C)x数组长度小于y数组长度D)x数组等价于y数组
10、二维数组的第一个元素的行下标和列下标是
A)1,1B)0,1C)1,0D)0,0
二、填空题(每空3分,共30分)
1、如果a=4,b=3,那么,在执行语句a=b;之后,a、b的值分别是
(1)
2、语句:
if(6>5)printf(“#”);
printf(“$”);
输出
(2)
3、for(sum=j=0;j<=10;++j)sum+=j;循环结束后sum的值等于(3)
4、长度为10的int类型数组和长度为3的double类型数组,哪一个数组占用的内存空间多(4)
5、字符数组a)chara[]=“one”;占多少内存字节(5)
6、如果ch<‘A’或ch>‘Z’,那么,表达式ch>=‘A’&&ch<=‘Z’的值是(6)
7、编写C语句,交换a、b的值(7)
8、为了使用库函数getchar(),必须在程序中包含命令(8)
9、设intnumbers[5]={17,25,30,56,58};编写C的for语句,将数组numbers中的每个元素减去3。
使用变量i跟踪下标。
(9)
10、设有函数定义:
设有函数定义:
intmax(intx,inty)
{intz;
z=x>y?
x∶y;
return(z);
}
语句printf(“%d”,max(max(2,3),4));输出什么?
(10)
三、阅读下列程序,写出运行结果(每题5分,共20分)
1、
#include
voidmain()
{ chara=’A’;
printf(“%c\n",a+32);
}
2、
#include
voidmain()
{intx=3,y;
if(x<0)y=-1;
elseif(x>0)y=1;
elsey=0;
printf(“x=%d,y=%d\n”,x,y);
}
3、
#include
voidmain()
{intf1,f2;
intj;
f1=1;f2=1;
for(j=1;j<=4;j++){
printf(″%d%d″,f1,f2);
f1=f1+f2;
f2=f2+f1;
}
}
4、
#include
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
for(i=0;i<2;i++){
for(j=0;j<3;j++)b[j][i]=a[i][j];
}
printf("arrayb:
\n");
for(i=0;i<3;i++){
for(j=0;j<2;j++)printf("%5d",b[i][j]);
printf("\n");
}
}
四、编写程序(共30分,每题10分)
1、从键盘上输入两个整数,比较两个数的大小,并输出较大者
2、编写程序,打印如下图案:
*
**
***
****
*****
3、编写程序,求一维数组中最大元素,数据自定。
参考答案:
一、单项选择题(每题2分,共20分)
(1)~(5)CCAAB
(6)~(10)CABBD
二、填空题(每空3分,共30分)
(1)a=3,b=3
(2)#$
(3)55
(4)double类型数组
(5)4
(6)0
(7)t=a;a=b;b=t;
(8)#include
(9)for(i=0;i<5;++i)numbers[i]-=3;
(10)4
三、阅读下列程序,写出运行结果(每题5分,共20分)
1、a
2、x=3,y=1
3、1123581321
4、arrayb:
14
25
36
四、根据题目要求编写完整程序(共30分,每题10分)
1、
#include
voidmain()
{floatf1,f2,t;
scanf("%f%f",&f1,&f2);
if(f1>f2)printf("%f\n",f1);
elseprintf("%f\n",f2);
}
2、
#include
voidmain()
{inta,b;
for(a=1;a<=5;++a){
for(b=1;b<=a;++b)printf("*");
printf(“\n”);
}
3、
#include
voidmain()
{inti,a[10],sum;
for(i=0;i<10;++i)scanf(“%d”,&a[i]);
sum=a[0];
for(i=1;i<10;++i)if(a[i]>sum)sum=a[i];
printf(“sum=%d\n”,sum);
}
C语言程序设计试题集(第2套)
一.单项选择题(30分,每题2分)
1.用C语言编写的代码程序______。
A、可立即执行B、是一个源程序
C、经过编译即可执行D、经过编译解释才能执行
2.C语言中用于结构化程序设计的三种基本结构是______。
A、顺序结构、选择结构、循环结构B、if、switch、break
C、for、while、do-whileD、if、for、continue
3.以下选项中合法的实型常数是______。
A、5E2.0B、E-3C、.2E0D、1.3E
4.假定x和y为double型,则表达式x=2,y=x+3/2的值是______。
A、3.500000B、3C、2.000000D、3.000000
5.ch是字符型变量,下面不正确的赋值语句是______。
A、ch=65;B、ch="a";C、ch='\n';D、ch=9+'0';
6.下列有关C语言程序书写格式的说法哪个是错误的?
A、C程序的书写格式比较自由,一个语句可以占多行,一行也可以有多个语句。
B、C语句必须要有分号。
C、C语言程序的标识符必须使用小写字母。
D、用{}括起来的部分,通常表示了程序的某一层次结构,称为块。
7.下面程序段所表示的数学函数关系是______。
x=-1;
if(a!
=0)
if(a>0)x=1;
elsex=0;
-1(a<0) 1(a<0)
A、x=0(a=0)B、x=-1(a=0)
1(a>0)0(a>0)
0(a<0)-1(a<0)
C、x=-1(a=0) D、x=1(a=0)
1(a>0)0(a>0)
8.以下关于do-while循环的不正确描述是______。
A)do-while的循环体至少执行一次
B)do-while的循环体可以是复合语句
C)在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
9.以下程序执行后sum的值是______。
A)15B)14C)不确定D)0
main()
{inti,sum=0;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
10.若有说明语句:
inta[][3]={1,2,3,4,5,6};则a数组第一维的大小是。
A.1B.2C.3D.无确定值
11.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是______。
A、float型B、long型C、int型D、double型
12.下面正确的函数定义形式为
A、doublefun(intx;inty)
B、doublefun(intx,inty);
C、doublefun(intx,y)
D、doublefun(intx,inty)
13.以下程序运行后,输出结果是______。
#defineADD(x)x+x
main()
{intm=1,n=2,s=3;
s=S+ADD(m+n);
printf("s=%d\n",s);
}
A、s=8 B、s=9 C、s=6 D、s=18
14.若有定义:
intx,*p;则以下正确的赋值表达式是
A、p=&xB、p=xC、*p=&xD、p=*x
15.以下变量a,b,c均为double型且已正确赋值,不能正确地表示数学式子
的C语言表达式是
A、2*(1/(a*b*c)) B、2/a*b*cC、2/a*1/b*1/cD、2/a/b/c
二.程序填空题(20分,每空2分)
1.以下程序的功能是:
输入三个整数n1、n2、n3,将最大的数输出。
请填空。
main()
{intn1,n2,n3,temp;
scanf("%d%d%d",&n1,&n2,&n3);
if(n2 {temp=n2;n2=n3;n3=temp;} if(n1 {temp=n1;①;②;} printf("%d\n",n1); } 2.编写打印整数1~10的平方的函数。 请填空。 main() {inti; for(i=1;i③;i++) printf(“%d\n”,square(i)); } square(intn) {return(④);} 3.求数组所有元素累加和。 请填空。 main() {intsum,i,j,k,a[2][2][2]={1,2,3,4,5,6,7,8}; sum=⑤; for(i=0;i<2;i++) for(j=0;j<2;j++) for(k=0;k<2;k++) sum=⑥; printf("%d",sum); } 4.以下程序的功能是调用函数fun计算: m=1-2+3-4+…+9-10,并输出结果。 请填空。 intfun(intn) {intm=0,f=1,i; for(i=1;i<=n;i++) {m+=⑦; f=⑧; } returnm;} main() {printf(“m=%d\n”,fun(10)); } 5.将以下含有switch语句的程序段改写成对应的含有嵌套if语句的程序段,请填空。 含有switch语句的程序段: ints,t,m; t=(int)(s/10); switch(t) {case10: m=5;break; case9: m=4;break; case8: m=3;break; case7: m=2;break; case6: m=1;break; default: m=0; } 含有嵌套if语句的程序段: ints,m; if(s<60||s>110)m=0; elseif(s<70)m=1; elseif(s<80)m=2; elseif(s<90)m=3; elseif(s<100)⑨; else⑩; 三.程序运行结果题(20分,每题4分) 1.写出程序运行的结果: main() { inta=2,b=3; floatx=3.5,y=2.5,p; p=(float)(a+b)/2+(int)x%(int)y; printf("p=%f\n",p); } 2.写出程序运行的结果: main() { inti,j; i=3; j=6; printf("%d,%d\n",i++,j--); printf("%d,%d\n",++i,--j); } 3.写出程序运行的结果: main() {intnumber=0; while(number<=1) {printf(“*%d,”,number); number++;} printf(“**%d\n”,number); } 4.写出程序运行的结果: main() {chars[]="abcdefg"; inti; for(i=1;i<7;i+=2) printf("%c",s[i]); } 5.写出程序运行的结果: intast(intx,inty,int*cp,int*dp) {*cp=x+y;*dp=x-y;} main() {inta=4,b=3,c,d; ast(a,b,&c,&d); printf("%d%d\n",c,d); } 四.程序设计题(30分,每题10分) 参考知识: C语言数的范围: int型和short型为-32768~32767,long型为-2147483648~2147483647,单精度实数为-3.4×10-38~3.4×1038(7位有效数字),双精度实数为-1.7×10-308~1.7×10308(15位有效数字),长双精度实数为-1.2×10-4932~1.2×104932(18位有效数字)。 1.输入一个华氏温度f,然后计算,最后输出对应的摄氏温度c。 换算公式为: C=5*(F-32)/9 要求输出保留2位小数。 2.已知 x(x<1) y=2x-1(1<=x<10) 3x-11(x>=10) 用scanf函数输入x的值,求y值。 3.编写一个循环结构的程序,求1! +2! +3! +4! +5! +6! +7! +8! +9! +10! 的值。 一.单项选择题(30分,每题2分) 1B6C11C 2A7C12D 3C8D13B 4D9A14A 5B10B15B 二.程序填空题(20分,每空2分) ①n1=n2②n2=temp③<=10④n*n⑤0 ⑥sum+a[i][j][k]⑦i*f⑧-f⑨m=4⑩m=5 三.程序阅读题(20分,每题4分) 1p=3.50000023,63*0,*1,**24bdf571 5,4 四. 1.本题10分。 main() {floatc,f; printf("InputF="); scanf("%f",&f); c=5*(f-32)/9; printf("C=%.2f\n",c); } 2.本题10分。 main() {floatx,y; scanf("%f",&x); if(x<1)y=x; elseif(x>=10)y=3*x-11; elsey=2*x-1; printf("%f\n",y); } 3.本题10分。 main() {inti;longt=1; longs=0; for(i=1;i<=10;i++) {t=t*i; s+=t;} printf("1! +2! +3! +4! +5! +6! +7! +8! +9! +10! =%ld",s); } C语言程序设计试题集(第3套) 一、单项选择题(每题2分,共20分) 1、下列语言中,CPU能直接识别的是 A)自然语言B)高级语言C)汇编语言D)机器语言 2、以下所列的C标识符中,错误的是 A)examp1B)RS686C)2mixD)first_exam 3、下面哪个是不合法的赋值语句 A)x+=2;B)x=y=z=0;C)x+y=z;D)m+=m/=2; 4、设intage,count;doubleprice,weight;下面哪个语句是正确的 A)scanf(“%lf”,&price); B)scanf(“%d”,age); C)printf(“%d”,&count); D)printf(“%d”,weight); 5、下面哪一项不是程序的控制结构? A)循环B)选择C)顺序D)排序 6、指出下面语句的执行结果 if(5<3)printf(“*”); elseif(7==8)printf(“&”); elseprintf(“$”); A)*B)&C)$D)以上全不是 7、选出最佳答案 s=0; for(j=0;j<5;++j)s=2*s+j; s最后的值是什么? A)11B)4C)26D)22 8、下面哪一项是对函数voiddisplay(void);的调用? A)calldisplay();B)display();C)display()D)display; 9、下面哪个说法是错误的? A)数组中的所有元素具有相同的名称 B)数组中的所有元素具有相同的数据类型 C)数组中的所有元素具有相同的下标 D)数组中的元素在内存是连续存放的 10、二维数组的第一个元素的行下标和列下标是 A)0,0B)0,1C)1,0D)1,1 二、填空题(每空2分,共20分) 1、编写C表达式: b2-4ac (1) 2、编写C语句,声明int变量来存储4个整数 (2) 3、假定intx=5,y;,在执行语句“y=x++;”后,x,y的值是(3) 4、将复合赋值语句x*=5-z;写成等效的简单赋值语句(4) 5、编写C语句,该语句显示12.3的平方根(5) 6、编写C语句,如果gender是’M’,那么输出Male(6) 7、假设输入: 3845714–1,下面代码的输出是什么? (7) sum=0; scanf(“%d”,&num); while(num! =-1){ sum+=num; scanf(“%d”,&num); } printf(“%d”,sum); 8、为了使用库函数sqrt(),必须在程序中包含命令(8) 9、设intnumbers[5]={17,25,30,56,58};编写C的while语句,将数组numbers中的每个元素减去数字3。 使用变量i跟踪下标,假设变量的初值为0。 (9) 10、设有函数定义: 设有函数定义: ints(intone) {intj; intp=1; for(j=1;j<=3;++j)p=p*one; returnp; } 语句printf(“%d”,s (2));输出什么? (10) 三、程序分析填空题(每空3分,共30分) 1、从键盘输入一个大写字母,要求改用小写字母输出。 #include voidmain() { chara; printf(“请输入一个大写字母: ”); a=getchar(); printf(“对应的小写字母是: %c", (1)); } 2、判断是否是闰年,闰年的条件: 能被4整除而不能被100整除,或能被400整除的公元年。 #include voidmain() {intyear,leap; scanf("%d",&year); if( (2))leap=1; elseleap=0; if(leap)printf("%dis",year); elseprintf("%disnot",year); printf("aleapyear.\n"); } 3、求1到100的和 #include voidmain() {inti,sum; (3) do{ sum=sum+i; (4); }while(i<=100); printf("%d\n″,sum); } 4、打印Fibonicci数列前20项: 1,1,2,3,5,8…数学表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题集 16
![提示](https://static.bdocx.com/images/bang_tan.gif)