C期终模拟题NITWord格式.docx
《C期终模拟题NITWord格式.docx》由会员分享,可在线阅读,更多相关《C期终模拟题NITWord格式.docx(12页珍藏版)》请在冰豆网上搜索。
(7).下列数据中,为字符串常量的是_____.
(A)‘A’(B)”house”
(C)Howdoyoudo.(D)‘$abc’
(8).下列while循环,将执行______
i=4;
while(--i)printf(“%d”,i);
A)3次B)4次C)0次D)无限次
(9).对于以下程序段,运行后i值为_______
inti=0,a=1;
switch(a){
case1:
i+=1;
case2:
i+=2;
default:
i+=3;
}
A)1B)3C)6D)上述程序有语法错误
(10).数组定义为inta[3][2]={1,2,3,4,5,6},数组元素的值为6.
A.a[3][2]B.a[2][2]C.a[1][2]D.a[2][1]
(11).以下程序的运行结果是___________.
#include<
stdio.h>
main()
{intx=3,y=1,z=0;
if(x=y+z)
printf(“****\n”);
else
printf(“####\n”);
(A).有语法错误不能通过编译.(B).输出:
****
(C).可能通过编译,但不通过连接,因而不能运行(D).输出:
####
(12).设有字符串:
”s=%d\n”;
字符串的长度为
A.4B.5C.6D.7
(13).写出下列程序的输出结果。
fun(intk)
{staticinta;
printf(”%d”,a);
a+=k;
}
main()
{intk;
for(k=1;
k<
=3;
k++)
fun(k);
(A)011(B)013
(C)033(D)031
(14).设有以下说明语句:
structex
{intx;
floaty;
charz;
}example;
则以下叙述中不正确的是______
(A)struct是结构体类型的关键字(B)example是结构体类型名
(C)x,y,z都是结构体成员名(D)structex是结构体类型名
(15).定义FILE*fp;
其中fp代表的意思是
A.文件在磁盘上的读写位置B.文件类型结构体变量
C.整个磁盘文件D.文件类型结构体指针变量
二.判断题(/)(每题1分,共10分)
1.在C程序中,用整数0表示逻辑值“假”。
2.表达式(3.6%2)符合C语言语法。
3.08是正确的整型常数。
4.设有语句:
scanf(“Entera:
%d”,&
a);
现给变量a输入25,其输入形式为:
25(回车).
5.表达式m=n++的求解顺序是先计算m=n,再计算n=n+1。
6.for循环语句中的三个表达式根据不同情况可以省去.
7.变量名fahr和Fahr代表两个不同的变量。
8.break语句只能用于循环结构中。
9.while语句先判断循环条件,所以循环体有可能一次也不执行。
10.可以定义多种不同的结构体类型.
三.程序改错:
(20分,共3题10处错,2分/每错)
注:
以下程序中,在标有/*errn*/的行上有一错误
.
(1).输入一个正整数n,输出y=2/1+3/2+5/3+8/5+…的前n项之和。
#include<
stdlib.h>
/*err1*/
voidmain()
{intn,i;
floatx1,sum=0,x=2,w=1;
printf("
请输入项数n的值:
"
);
scanf("
%d"
n);
/*err2*/
for(i=1;
i<
=n;
i++){
sum+=x/w;
x1=x;
x=x+w;
w=x1;
Sum=%0.2d\n"
sum);
/*err3*/
(2).程序功能:
运行时输入整数n=1308,输出12;
输入n=3204,输出9.
math.h>
{intn,s;
/*err4*/
scanf("
&
n);
n=fabs(n)
while(n>
1){/*err5*/
s=s+n%10;
n=n%10;
/*err6*/
%d\n"
s);
(3.)输入一个正整数n(1<
n<
=10),再输入这n个整数,用选择法将它们从小到大排序,并输出.
#defineN11
voidmian()/*err7*/
{inti,index,k,n,temp;
inta[N];
输入n:
scanf("
输入数组各元素:
n;
i++)/*err8*/
a[i]);
/*err9*/
for(k=0;
n-1;
k++)
{index=k;
for(i=k+1;
i++)
if(a[i]<
a[index])
index=i;
temp=a[index];
a[index]=a[i];
/*err10*/
a[k]=temp;
}}
四、程序选择填空题(每空1分,共10分)
说明:
阅读下列程序说明和相应程序,在每小题提供的若干可选答案中,挑选一个正确答案。
程序1、
【程序说明】
输出1~1000之间所有满足各位数的立方和等于它本身的数.
【程序】
voidmain()
{intdigit,k,m,s;
for(k=1;
k<
=1000;
k++){
(1)
while(m!
=0){
digit=m%10;
s=s+digit*digit*digit;
(2)
if((3))printf(“%d“,(4));
(1)A.s=0;
m=k;
B.k=k;
s=0;
C.m=k;
Dk=m;
(2)A.m=m/10;
B.m=m%10;
C.m=m;
Dm=k/10;
(3)A.m!
=sB.m==sC.k!
=sDk==s
(4)A.sB.digitC.mDk
程序2
验证哥德巴赫猜想:
任何一个大于6的偶数均可表示为两个素数之和。
例如6=3+3,8=3+5,…,18=7+11。
将6~100之间的每个偶数都表示成两个素数之和。
函数prime(m)用于判断m是否为素数。
素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
#include"
stdio.h"
math.h"
voidmain()
{inti,k;
intprime(intm);
for(i=6;
i<
=100;
i=i+2)
for(k=3;
k<
=50;
if((5)){
%d=%d+%d\n"
i,k,i-k);
break;
intprime(intm)
{intk,n;
if(m==1)return0;
n=(int)sqrt(m);
for(k=2;
=n;
(6);
(7);
(5)A、prime(i)B、prime(i)&
prime(k)
C、prime(k)&
prime(i-k)D、prime(k)
(6)A、if(m%k!
=0)return0B、if(m%k==0)return0
C、if(m%k==0)return1D、if(m%k!
=0)return1
(7)A、return0;
B、return1;
C、elsereturn0;
D、elsereturn1;
程序3、
根据下式计算s的值,要求精确到最后一项的绝对值小于10–6。
{intflag=1,t=1;
(8);
while((9)){
item=flag*1.0/t;
s=s+item;
(10);
t=t+2;
printf("
s=%f\n"
s);
(8)A、doubleitem=0,s=0;
B、doubleitem=0;
s=0;
C、doubleitem=1,s=1;
D、doubleitem=3,s=1;
(9)A、item<
1E-6B、item>
=1E-6
C、fabs(item)<
1E-6D、fabs(item)>
(10)A、flag=-1B、s=-s
C、flag=-flag;
D、t=-t
五、程序阅读题(5小题每题4分,共20分)
阅读下列程序,将运行时的输出结果写在答卷纸的相应题号下。
1、程序1如输入”23cd78”,输出结果是什么.
#include<
string.h>
voidmain()
{
inti,s=0;
charstr[80];
i=0;
while((str[i]=getchar())!
='
\n'
i++;
str[i]='
\0'
;
for(i=0;
=10;
if(str[i]>
0'
str[i]<
9'
s=s*10+(str[i]-'
2.程序2
{intI,x=1,y=1;
for(I=1;
I<
=5;
I++){
x=x+y;
y++;
printf(“%d*”,x);
3.程序3
{intx=1,y=1;
voidf(intm,intn,int*px,int*py);
f(2004,70,&
x,&
y);
printf("
%d#%d#"
x,y);
f(2005,98,&
voidf(intm,intn,int*px,int*py)
{intk,flag;
inttab[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},
};
flag=m%4==0&
m%100!
=0||m%400==0;
for(k=1;
n>
tab[flag][k];
n=n-tab[flag][k];
*px=k;
*py=n;
4.程序4
/*假设读写文件的操作能正常完成*/
{charch,*s="
ACEDB"
intx;
FILE*in;
if((in=fopen("
file.txt"
"
w"
))!
=NULL)
while(*s!
fputc(*s++,in);
fclose(in);
if((in=fopen("
r"
while((ch=fgetc(in))!
=EOF){
switch(ch){
case'
:
x=95;
B'
x=85;
C'
x=75;
D'
x=60;
default:
x=0;
printf("
%d_"
x);
5.程序5
{intx=10023;
do{
printf(“%d#”,x%10);
x=x/10;
}while(x!
=0);
六、程序设计题((共3题,分别为7、8、10分,共25分)
1.输入3个整数,输出其中的最大值
2.编写一程序,用函数调用方法,求一矩阵的主对角线(左上到右下角)上的元素之和。
(矩阵大小自行规定,数组内容自行输入),
3.利用数组,计算Fibonacii(斐波纳契)数列前20项的值,即1,1,2,3,5,8,…,并按每行打印5个的格式输出.
C_期终模拟题(2010年12月)
==答题纸==
一、单选题(每小题1分,共15分)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
二.判断题((/)每题1分,共10分)
(1)
(1).err1.__err2.__________err3.__________
(2).err4.________err5.________err6.__________
(3).err7.__________err8__________
err9.______-____err10._____
五、程序阅读题(5小题,每题4分,共20分)
1
2
3
4
1.
2.
3.