C程序设计 样卷文档格式.docx
- 文档编号:20854993
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:53
- 大小:124.99KB
C程序设计 样卷文档格式.docx
《C程序设计 样卷文档格式.docx》由会员分享,可在线阅读,更多相关《C程序设计 样卷文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
(6)
设有程序段
for(i=1;
i<
10;
i++)
{printf("
%d"
i);
i++;
}
以下叙述正确的是___(A)___。
[A]for循环执行的输出是13579[B]for循环执行的输出是123456789
[C]for循环体语句执行10次[D]for循环体语句执行9次
(7)
以下能正确进行数组定义的是___(C)___。
[A]inta(10);
[B]intn=10,a[n];
[C]#defineSIZE10[D]inta[10]=0;
inta[SIZE];
(8)
p
q
若要建立如图所示的存储结构,且已有定义floatp=3.14,*q;
,则正确的赋值语句是___(D)___。
[A]*q=p;
[B]*q=&
p;
[C]q=p[D]q=&
(9)
以下语句执行后屏幕上将显示___(C)___。
chars1[]="
ABC"
s2[]="
XYZ"
strcpy(s2,s1);
s2[2]='
\0'
printf("
%s,%s"
s1,s2);
[A]ABC,ABC[B]XYZ,XYZ[C]ABC,AB[D]XYZ,XY
(10)
表达式2&
3的结果值为___(B)___。
[A]1[B]2[C]3[D]5
二、程序填空题(本题共30分,每小题2分)
阅读下列程序说明和程序代码,在每小题提供的若干可选项中,挑选一个最佳的选项。
【程序说明】打印数字金字塔,运行结果如右图示。
【程序代码】
#include<
stdio.h>
voidmain(){
inti,j;
for(i=1;
=5;
i++){
for(j=5-i;
___(11)___;
j--)
printf("
"
);
for(j=1;
___(12)___;
j++)
___(13)___
\n"
}
【选项】
(11)
[A]j<
=1[B]j==1[C]j>
=1[D]j>
1
(12)
=2*i[B]j==2*i[C]j<
=2*i-1[D]j==2*i-1
(13)
[A]printf("
j);
[B]printf("
[C]printf("
*"
[D]printf("
i"
【程序说明】计算1~99之间的素数和。
prime函数用于判断任意一个数是否是素数,若是素数则返回1,否则返回0。
其中数值1和2直接被认定为非素数。
math.h>
intm,i,s=0;
intprime(int);
for(m=1;
m<
=99;
___(14)___){
if(___(15)___)
s+=m;
s=%d"
s);
___(16)___{
inti,t=1;
if(x==1||x==2)___(17)___
for(i=2;
=sqrt(x);
if(x%i==0){
t=0;
break;
___(18)___
(14)
[A]m++;
[B]m=m+2;
[C]m+2[D]m+=2
(15)
[A]prime(m)=1[B]prime(m)[C]!
prime(m)[D]prime(x)!
=0
(16)
[A]intprime(intm)[B]intprime(int)
[C]intprime(intx)[D]voidprime(intx)
(17)
[A]t=0;
break;
[B]returnt;
[C]t=0;
returnt;
[D]t=0;
(18)
[A]returnt;
[B]return;
[C];
[D]returnt
(3)
【程序说明】任意输入一个少于80个字符的字符串,统计字符串中的阿拉伯数字的个数。
程序运行结果如右图所示。
charstr[80],*p;
ints=0;
___(19)___
___(20)___
___(21)___{
if(___(22)___)
s++;
___(23)___
}
阿拉伯数字有%d个。
(19)
[A]gets(str);
[B]gets(&
str);
[C]scanf("
%s"
[D]scanf("
%c"
str[i]);
(20)
[A]p=&
str;
[B]p=str;
[C]*p=&
[D]*p=str;
(21)
[A]while(p=='
)[B]while(*p=='
)
[C]while(p!
='
)[D]while(*p!
(22)
[A]*p>
=48&
*p<
=57[B]*p>
=48||*p<
=57
[C]*p>
=0&
=9[D]*p>
=0||*p<
=9
(23)
[A]p++;
[B]p+1;
[C]*p++;
[D]str++;
【程序说明】定义一个结构体变量(包括年、月、日)。
计算该日在本年中是第几天?
程序运行结果如下图所示。
注意闰年问题。
(提示:
能被4整除且不能被100整除或能被400整除的年份是闰年)
#include<
___(24)___
intmon[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,days=0;
pleaseinputthedate(yyyy-mm-dd):
"
scanf("
%d-%d-%d"
today.year,&
today.month,&
today.day);
if(today.year%4==0&
today.year%100!
=0||today.year%400==0)
mon[1]=29;
for(i=0;
today.month-1;
days=days+mon[i];
___(25)___
Todayisthe%dstdayin%d.\n"
days,today.year);
(24)
[A]structdate{[B]struct{
intyear;
intyear;
intmonth;
intday;
intday;
}}today;
structdatetoday;
[C]structdate{[D]structdate{
};
}today
structtoday;
(25)
[A]days=days+day;
[B]days=days+today.day;
[C]days=days+today[D]today.day=days+today.day;
三、程序阅读题(本题共20分,每小题2分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确的答案。
(1)【程序代码】
intx=1,y=2,z;
switch(z%2){//------①-------
case1:
z=x*y;
default:
z=x/y;
z);
(26)
程序运行时,输入分别是1和2的情况下,输出的结果分别是___(26)___。
[A]2和0[B]2和0.5[C]0和2[D]0.5和2
(27)
如果将上述程序代码标示为①行中switch语句括号内的表达式改为z%2==0,那么程序运行时,输入分别是1和2的情况下,输出的结果分别是___(27)___。
inta[5]={1,3,2,5,4},i,j,k,t;
5;
k=i;
for(j=i+1;
j<
if(a[i]<
a[j])//------②-------
k=j;
t=a[i];
a[i]=a[k];
a[k]=t;
a[i]);
(28)
程序运行时输出的结果是___(28)___。
[A]12345[B]54321[C]13254[D]45321
(29)
如果将上述程序代码标示为②行的语句改为if(a[k]<
a[j]),那么程序运行时输出的结果是___(29)___。
intm=17,s=0;
while(m>
=1){
m/=2;
s+=2;
m=%d,s=%d\n"
m,s);
(30)
程序运行时,while循环执行了___(30)___次。
[A]0[B]4[C]5[D]17
(31)
程序运行时,第1行输出___(31)___。
[A]m=17,s=0[B]m=8,s=2[C]m=8.5,s=2[D]m=9,s=2
(32)
程序运行时,最后一行输出___(32)___。
[A]m=0,s=10[B]m=1,s=8[C]m=1,s=10[D]m=2,s=6
(33)
如果将代码中while判断条件改为while(m!
=0),那么while循环将___(33)___。
[A]一次也不执行[B]无法停止[C]执行4次[D]执行5次
voidf1(intx){
x=x+1;
voidf2(int*y){
*y=*y+1;
intx;
x=15;
f1(x);
%o,%d\n"
x,x);
f2(&
x);
(34)
程序运行时,第1行输出___(34)___。
[A]15,15[B]16,16[C]17,15[D]20,16
(35)
程序运行时,第2行输出___(35)___。
四、程序设计题(本题共30分,每小题10分)
(1)编写程序,求解ax2+bx+c=0方程的根。
求根公式为x=
要求从键盘上输入系数a、b、c,根据以下几种情况分别进行求解:
●a=0,输出“不是一元二次方程”
●a≠0且b2-4ac=0,求解并输出两个相等实根。
●a≠0且b2-4ac>
0,求解并输出两个不等实根。
●a≠0且b2-4ac<
0,输出“没有实根”。
(2)编写程序,定义计算阶乘的函数intfact(intx),在main()函数中调用fact函数计算求和式s=
。
(3)编写一个统计平均成绩的程序。
文件“stu.txt”中记录了一批成绩数据。
请输出所有成绩和平均成绩。
文件“stu.txt”中的数据和程序运行结果分别如下图所示。
C程序设计试题(十二)
五、单选题(本题共20分,每小题2分)
以下定义语句中正确的是(C)。
[A]chara='
b='
B'
[B]floata=b=10.0;
[C]inta=10,*b=&
a;
[D]float*a,b=&
若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<
10的是(C)。
[A]fabs(x-y)<
10[B]x-y>
-10&
x-y<
10
[C]x-y>
-10||x-y<
10[D](x-y)*(x-y)<
100
函数调用:
strcat(strcpy(str1,str2),str3)的功能是(A)。
[A]将串str2复制到串str1中后再将串str3连接到串str1之后
[B]将串str2连接到串str1之后再将串str1复制到串str3中
[C]将串str1复制到串str2中后再连接到串str3之后
[D]将串str1连接到串str2之后再复制到串str3之后
设有语句chara='
\72'
则变量a(A)。
[A]包含1个字符[B]包含2个字符
[C]包含3个字符[D]声明不合法
在C语言中,要求运算数必须是整型的运算符是(D)
[A]!
[B]/[C]<
[D]%
若有声明和语句:
inta=5;
a++;
则此处表达式a++的值是(C)。
[A]7[B]6[C]5[D]4
以下程序段的输出结果是(C)。
intx=3;
do{
%d"
x-=2);
}while(!
(--x));
[A]1[B]30[C]1-2[D]死循环
不能把字符串“Hello!
”赋给数组b的语句是(B)。
[A]charb[10]={'
H'
'
e'
l'
o'
!
'
};
[B]charb[10];
b="
Hello!
[C]charb[10];
strcpy(b,"
[D]charb[10]="
设有如下的程序段:
charstr[]="
Hello"
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为(B)。
[A]'
[B]'
[C]不确定的值[D]'
的地址
以下对C语言函数的有关描述中,正确的是(D)。
[A]C程序中有调用关系的所有函数必须放在同一个源程序文件中
[B]C函数既可以嵌套定义又可以递归调用
[C]函数必须有返回值,否则不能使用函数
[D]在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
六、程序填空题(本题共30分,每小题2分)
【程序说明】
判定某一年year是否为闰年。
闰年的判断方法:
一个年份如果能被4整除但不能被100整除,或者能被400整除,则该年为闰年。
#include<
voidmain()
{
intyear,leap;
scanf((11));
if(year%4==0)
if((12))
(13);
else
leap=1;
(14);
if(leap)
(15)is"
year);
(15)isnot"
aleapyear.\n"
[A]year[B]&
year
[C]"
year[D]"
year
[A]year%100!
=0[B]year%100==0
[C]year%400==0[D]year%100=0
[A]leap=0[B]leap=1
[C]leap=(year%400==0)?
0:
1[D]leap=(year%400==0)?
1:
%dis"
year)[D]leap=(year%100==0)?
[A]%d[B]%f
[C]%c[D]%s
输入一个字符串,当输入回车时表示输入完毕,然后判断该字符串中数字字符的个数、大写字母字符的个数、小写字母字符的个数及其它字符的个数。
(16)>
intn=0,l=0,u=0,o=0;
charc;
Pleaseinputastring:
n);
(17);
while((18))
{
if((19))n++;
elseif(islower(c))l++;
elseif(isupper(c))u++;
else(20)
Countofdigitis:
%d\n"
Countoflowercaseletteris:
l);
Countofuppercaseletteris:
u);
Countofothercharacteris:
o);
}
[A]ctype.h[B]math.h
[C]string.h[D]stdlib.h
[A]c=gets()[B]gets(c)
[C]c=getchar()[D]scanf("
c)
[A]c=='
[B]c!
[C]c=='
\n'
[D]c!
[A]isdigit(c)[B]isalpha(c)
[C]iscntrl(c)[D]isgraph(c)
[A]if(isspace(c))++o;
[B]o++;
[C]if(isspace(c))o++;
[D];
在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。
程序运行结果如右图所示:
#defineN3
#defineM3
intselect(inta[N][M],int*n)
inti,j,row=0,colum=0;
for(i=0;
N;
for((21))
if(a[i][j]>
a[row][colum]){row=i;
colum=j;
(22);
return(23);
main()
inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select((24),(25));
max=%d,line=%d\n"
max,n);
[A]j=0;
=M;
j++[B]j=1;
++j
[C]j=0;
M;
++j[D]j=1;
j++
[A]n=&
row[B]n=row
[C]*n=row[D]row=*n
[A]n[B]a[][]
[C]a[i][j][D]a[row][colum]
[A]a[B]a[][M]
[C]a[N][M][D]a[][]
[A]*n[B]&
n
[C]*&
n[D]n
七、程序阅读题(本题共20分,每小题2分)
输入一组整数数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 样卷 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)