C语言程序设计第1阶段练习题.docx
《C语言程序设计第1阶段练习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第1阶段练习题.docx(12页珍藏版)》请在冰豆网上搜索。
C语言程序设计第1阶段练习题
江南大学现代远程教育第一阶段练习题
考试科目:
《C语言程序设计》第一章至第四章(总分100分)
学习中心(教学点)批次:
层次:
专业:
学号:
身份证号:
姓名:
得分:
一单选题(共20题,总分值40,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)
1.已知ch是字符型变量,下面正确的赋值语句是()。
(2分)
A.ch=‘123’;
B.ch=‘\xff’;
C.ch=‘\08’
D.ch=“\”
2.若变量都已正确说明,则以下程序段()。
a=2;b=3;
printf(a>b?
”***a=%d”:
”###b=%d”,a,b);(2分)
A.没有正确的输出格式控制
B.输出为:
***a=2
C.输出为:
###b=2
D.输出为:
***a=2###b=2
3.若变量都已正确说明,则以下程序段输出为()。
a=10;b=50;c=30;
if(a>b)a=b;
b=c;c=a;
printf(“a=%db=%dc=%d\n”,a,b,c);(2分)
A.a=10b=50c=10
B.a=10b=30c=10
C.a=50b=30c=10
D.a=50b=30c=50
4.以下正确的描述是()。
(2分)
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
5.若以下选项中的变量已正确定义,则正确的赋值语句是()。
(2分)
A.x1=26.8%3
B.1+2=x2
C.x3=0x12
D.x4=1+2=3
6.假设a为float类型数,i为整型变量,则下述语句能将a中的数值保留小数点1位,即四舍五入的是()。
(2分)
A.a=(a*10+0.5)/100.0
B.i=a*10+0.5,a=i/10.0
C.a=int(a*10)/10.0
D.a=(a/100+0.5)*100.0
7.设x和y均为int型变量,则执行下面的循环后,y值为()。
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1){x+=4;continue;}}(2分)
A.2
B.4
C.6
D.8
8.以下不符合C语言语法的赋值表达式是()。
(2分)
A.d=9+e,e++,d+9
B.k=i==j
C.n1+=n2+3
D.a=b+c=a+7
9.以下叙述中正确的是()。
(2分)
A.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
B.在C程序中,main()函数必须位于程序的最前面。
C.C语言本身没有输入输出语句。
D.C程序的基本单位是语句。
10.a的初值为10,执行表达式语句a+=a-=a*a;后,a的值为()。
(2分)
A.-80
B.-180
C.-90
D.-100
11.在C语言中,逻辑值“真”用()表示?
(2分)
A.true
B.正数
C.非0整数
D.非0的数
12.若int类型占两个字节,则以下语句输出为()。
intk=-1;
printf("%d,u%\n",k,k);(2分)
A.-1,-1
B.-1,65536
C.-1,32768
D.-1,65535
13.以下程序输出的结果是()。
#include<stdio.h>
main()
{inti=0,j=0,a=6;
if((++i>0)||(++j>0))a++;
printf(“i=%d,j=%d,a=%d\n”,i,j,a);
}(2分)
A.i=0,j=0,a=6
B.i=1,j=1,a=7
C.i=1,j=0,a=7
D.i=0,j=1,a=7
14.设x=3,y=-4,z=6,下面表达式的结果是()。
!
(x>y)+(y!
=z)||(x+y)&&(y-z)(2分)
A.0
B.1
C.-1
D.6
15.C语言程序由()组成。
(2分)
A.子程序
B.过程
C.函数
D.主程序与子程序
16.若有代数表达式(5ae)/(bc),则不正确的C语言表达式()。
(2分)
A.a/b/c*e*5
B.5*a*e/b/c
C.5*a*e/b*c
D.a*e/c/b*5
17.下列有四个用户定义的C语言标识符,只有一个是正确的,正确的是()。
(2分)
A.case
B.-ac
C._53
D.ab-c
18.整型变量a的取值范围为闭区间[-1,10]或开区间(20,40),则正确表示的逻辑表达式为()。
(2分)
A.–1<=a<=10|20<a<40
B.(–1<=a&&a<=10)|(20<a&&a<40)
C.(–1<=a&&a<=10)||(20<a&&a<40)
D.–1<=a<=10||20<a<40
19.在C语言中,设a和x都为整型变量,执行赋值表达式x=(a=3,6*3)后,x的值为()。
(2分)
A.54
B.3
C.18
D.21
20.设有如下程序段,其结果是()。
inta=100,b=100;
for(;a!
=b;++a,b++)
printf(“---\n”);(2分)
A.输出---
B.输出100行---
C.死循环
D.该for循环一次也不执行
二填空题(共5题,总分值30)
21.
以下程序实现求100~200,400~600间的全部素数,并以10个数一行的格式输出。
#include
main()
{intm,k,I,n=0;
for(m=101;m<=600;m+=2)
{
if(m>200_________m<400>
_________;
k=sqrt(m);
for(I=2;I<=k;I++)
if(m%I==0)
_________;
if(_________){printf(“%d”,m);n=n+1;}
if(n%10==0)printf(“\n”);
}
printf(“\n”);
}
(6分)22.#include“stdio.h”
main()
{charc;scanf(“%c”,&c);
switch(c-‘2’)
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;}
printf(“\n”);}
当分别输入1,2,5时,输出为________________________________、________________________________、________________________________。
(6分)
23.描述一个算法可用自然语言、__________________________、计算机语言、__________________________几种形式。
(6分)
24.斐波纳契数列中头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:
0,1,1,2,3,5,8,13,21,……等。
求斐波纳契数列的前20个数。
要求每行输出5个数。
请填空。
#include<stdio.h>
main()
{intf,f1,f2,I;
printf(“Fibonacciseries:
\n”);
f1=0;f2=________________________________;
printf(“%6d,%6d,”,f1,f2);
for(I=3;I<=20;_________________________)
{f=________________________________;
printf(“%6d,”,f);
if(________________________________)
printf(“\n”);
f1=f2;f2=________________________________;
}
printf(“\n”);
}(6分)
25.有以下程序
#include<stdio.h>
main()
{charch1,ch2;
intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-‘0’;n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序运行时输入:
12<回车>,执行后输出结果是__________________________。
(6分)
三编程题(共2题,总分值30)
26.采用二分法求方程2(x³)-4(x²)+3x-6=0在(-10,10)之间的根。
(15分)
27.
利用循环实现打印以下图形。
(15分)
一单选题(共20题,总分值40,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)
1.答案:
B
解析过程:
2.答案:
C
解析过程:
3.答案:
B
解析过程:
4.答案:
B
解析过程:
5.答案:
C
解析过程:
6.答案:
B
解析过程:
7.答案:
B
解析过程:
8.答案:
D
解析过程:
9.答案:
C
解析过程:
10.答案:
B
解析过程:
11.答案:
D
解析过程:
12.答案:
D
解析过程:
13.答案:
C
解析过程:
14.答案:
B
解析过程:
15.答案:
C
解析过程:
16.答案:
C
解析过程:
17.答案:
C
解析过程:
18.答案:
C
解析过程:
19.答案:
C
解析过程:
20.答案:
D
解析过程:
二填空题(共5题,总分值30)
21.答案:
&&,continue,break,I>k
解析过程:
22.答案:
3,66,87
解析过程:
23.答案:
流程图,伪代码
解析过程:
24.答案:
1,I++,f1+f2,I%5==0,f
解析过程:
25.答案:
12
解析过程:
三编程题(共2题,总分值30)
26.答案:
#include"stdio.h"
#include"math.h"
main()
{floata=-10,b=10,ab,fa,fab,fb;
fa=a*((2*a-4)*a+3)-6;
do{ab=(a+b)/2;
fab=ab*((2*ab-4)*ab+3)-6;
if((fa*fab)>0)
{a=ab;fa=fab;}
else
{b=ab;fb=fab;}
}while(fabs(fab)>=1e-5);
printf("方程的根为%.2f",ab);
}
解析过程:
27.答案:
#include"stdio.h"
main()
{intI,j,k;charm='A';
for(I=0;I<=4;I++)
{for(j=0;j<=3-I;j++)
printf("");
for(k=0;k<=2*I;k++)
if(k==0||k==2*I)
printf("%c",m+I);
else
printf("*");
printf("\n");}
for(I=0;I<=3;I++)
{for(j=0;j<=I;j++)
printf("");
for(k=0;k<=6-2*I;k++)
if(k==0||k==6-2*I)
printf("%c",m+3-I);
else
printf("*");
printf("\n");
}}
解析过程: