C语言程序设计第1阶段练习题 江南大学机考题库及答案.docx
《C语言程序设计第1阶段练习题 江南大学机考题库及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第1阶段练习题 江南大学机考题库及答案.docx(10页珍藏版)》请在冰豆网上搜索。
![C语言程序设计第1阶段练习题 江南大学机考题库及答案.docx](https://file1.bdocx.com/fileroot1/2022-11/29/5a186ec3-1ec1-4483-915f-32d74654cb4b/5a186ec3-1ec1-4483-915f-32d74654cb4b1.gif)
C语言程序设计第1阶段练习题江南大学机考题库及答案
江南大学网络教育第一阶段练习题
考试科目:
《C语言程序设计》第章至第章(总分100分)
__________学习中心(教学点)批次:
层次:
专业:
学号:
身份证号:
姓名:
得分:
一单选题(共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)
1.已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()。
(2分)
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d%d%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
2.下列判断char类型变量C1是为数字的最简单且正确的表达式()。
(2分)
A.'0'<=C1<='9'
B.(C1>='0')&&(C1<='9')
C.(C1>=0)&&(C1<=9)
D.('0'<=C1)&&('9'<=C1)
3.以下选项中,与k=n++完全等价的表达式是()。
(2分)
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
4.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()。
(2分)
A.6.500000
B.6
C.5.500000
D.6.000000
5.字符串”\\\’abcd\123\xAB\t”的长度为( )。
(2分)
A.8
B.17
C.9
D.10
6.已知c是字符型变量,以下不正确的赋值语句是
()。
(2分)
A.c=”a”
B.c=’a’
C.c=’\141’
D.c=’\x61’+3
7.下面的for循环最多可执行( )次。
for(x=0,y=0;(y!
=99)&&(x<4);x++);
(2分)
A.4次
B.5次
C.99次
D.0次
8.以下程序的输出结果是用()表示。
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
}(2分)
A.17,021,0x11
B.17,17,17
C.17,0x11,021
D.17,21,11
9.以下选项中合法的实型常数是()。
(2分)
A.5E2.0
B.E-3
C..2E1
D.1.3E
10.有以下程序
main()
{inti=1,j=1,k=2;
if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是( )。
(2分)
A.1,1,2
B.2,2,1
C.2,2,2
D.2,2,3
11.C语言中各种基本数据类型的存储空间长度排列为()。
(2分)
A.char≤long≤int≤float≤double
B.double≤float≤long≤int≤char
C.char≤int≤long≤float≤double
D.float≤int≤long≤char≤double
12.若有以下程序:
main()
{intk=2,i=2,m;
m=(k+=i*=k);
printf(“%d,%d\n”,m,i);}
执行后的输出结果是()。
(2分)
A.8,6
B.8,3
C.6,4
D.7,4
13.以下非法的赋值语句是()。
(2分)
A.n=(i=2,++i);
B.j++;
C.++(i+1);
D.x=j>0;
14.下列关于C语言用户标识符的叙述中正确的是()。
(2分)
A.用户标识符中可以出现在下划线和中划线(减号)。
B.用户标识符中不可以出现中划线,但可以出现下划线。
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头。
D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头。
15.执行以下程序段后,变量a,b,c的值为()。
intx=11,y=10,a,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;c=y;(2分)
A.a=10,b=10,c=9
B.a=9,b=9,c=12
C.a=9,b=9,c=11
D.a=1,b=9,c=11
16.下列说法中正确的是()。
(2分)
A.在switch语句中一定要使用break语句
B.在switch语句中不一定要使用break语句
C.break语句是switch语句的一部分
D.break只能用于switch语句中
17.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是()。
(2分)
A.s=a+b;
B.s=a+c;
C.s=s+c;
D.s=b+c;
18.已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是()。
(2分)
A.6
B.0
C.2
D.1
19.以下不符合C语言语法的赋值表达式是()。
(2分)
A.d=9+e,e++,d+9
B.k=i==j
C.n1+=n2+3
D.a=b+c=a+7
20.C语言中对于嵌套if语句规定else总是与()配对?
(2分)
A.第一个if
B.其之前最近的if
C.缩进位值相同的if
D.其之前最近的不带else的if语句
二填空题(共5题,总分值30分)
21.斐波纳契数列中头两个数是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分)
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.下述程序段的运行结果是__________________________。
intx,y;
x=17;y=26;
printf(“%d”,y/=(x%=6));(6分)
24.break语句的功能__________________________,contitue语句的功能__________________________。
(6分)
25.以下程序实现求100~200,400~600间的全部素数,并以10个数一行的格式输出。
#include<math.h>
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分)
三编程题(共2题,总分值30分)
26.采用二分法求方程2(x³)-4(x²)+3x-6=0在(-10,10)之间的根。
(15分)
27.
利用循环实现打印以下图形。
(15分)
一单选题(共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)
1.答案:
C
解析过程:
2.答案:
B
解析过程:
3.答案:
A
解析过程:
4.答案:
D
解析过程:
5.答案:
D
解析过程:
6.答案:
A
解析过程:
7.答案:
A
解析过程:
8.答案:
D
解析过程:
9.答案:
C
解析过程:
10.答案:
C
解析过程:
11.答案:
C
解析过程:
12.答案:
C
解析过程:
13.答案:
C
解析过程:
14.答案:
B
解析过程:
15.答案:
C
解析过程:
16.答案:
B
解析过程:
17.答案:
B
解析过程:
18.答案:
D
解析过程:
19.答案:
D
解析过程:
20.答案:
D
解析过程:
二填空题(共5题,总分值30分)
21.答案:
1,I++,f1+f2,I%5==0,f
解析过程:
22.答案:
3,66,87
解析过程:
23.答案:
5
解析过程:
24.答案:
提前结束循环,结束本次循环
解析过程:
25.答案:
&&,continue,break,I>k
解析过程:
三编程题(共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");
}}
解析过程: