《C程序设计》期末模拟试卷
一、单选题(每小题2分,共20分)
1、以下叙述正确的是( )
[A] 在C程序中,main函数必须位于程序的最前面。
[B] C程序的每一行只能写一条语句。
[C] C语言本身没有输入和输出语句。
[D] 在对一个C程序进行编译过程中,可发现注释中的错误。
2、能用作变量名字的标识符是( )。
[A] union
[B] double
[C] a123_cd
[D] ab-1
3、break语句( )。
[A] 只能出现在if语句中
[B] 可用在循环体和switch语句中
[C]
只能出现在循环体中
[D] 可用在函数中的任何语句
4、执行下面的程序段后,变量k中的值为 ( )。
int k=3, s[2];
s[0]=k; k=s[1]*10;
[A] 不定值
[B] 33
[C] 30
[D]10
5、设有数组定义: char array[]="China"; 则数组 array所占的空间为( ) 个字节。
[A] 4
[B] 5
[C] 6
[D] 7
6、下列程序执行后的输出结果是 ( )
#define MA(x) x*(x-1)
#include
void main()
{ int a=1;
printf("%d \n",MA(1+a));
}
[A] 3
[B] 2
[C]1
[D] 0
7、已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为________。
[A] p[0]
[B] *p
[C] &*a
[D] *&a
8、数组名作为实参传递给形参时,数组名被处理为( )。
[A] 该数组的长度
[B] 该数组的元素个数
[C] 该数组的首地址
[D] 该数组中各元素的值
9、执行循环语句: for(x=y=0;y!=250 && x<4;x++)y+=50;其循环体执行的次数为:
[A] 5
[B]2
[C]3
[D] 4
10、设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句________。
if (x=y) printf(" x is equal to y.");
[A] 语法错
[B] 能判断x和y是否相等
[C] 编译出错
[D] 不能判断x和y是否相等
二、程序填空题(阅读以下程序说明和相应程序,将空格补充完整。每小题2分,共30分)
1、 【程序说明】输出100以内(不含100)能被3整除且个位数为6的所有整数。
【运行示例】
6 36 66 96
【程序】
#include
void main()
{ int i,j;
for(i=0; (1) ;i++){
j= (2) ;
if( (3) )continue;
(4) ;
}
}
【供选择的答案】
(1)
[A] i<100
[B] i<=10
[C] i<10
[D] i<=100
(2)
[A] i/6
[B] i*6
[C] i%6
[D] i*10+6
(3)
[A] j%6!=0
[B] j%3!=0
[C] i%3==0
[D] i%3!=0
(4)
[A] printf("%d ",j)
[B] printf("\n")
[C] printf("%d ",i)
[D] printf("%d\n",j)
2、 【程序说明】 判别并显示输入的整数是否为质数。
【运行示例】
17
17 is a prime!
【程序】
#include
void main()
{ int n;int prime(int); (5)
scanf("%d",&n);
v= (6) ;
if (v==1) then printf( (7) )
else printf( (8) )
}
int prime(int p)
{ int k,i,v=1;
(9) ;
for(i=2;i<=k;i++)
{ (10) }
return v;
}
【供选择的答案】
(5)
[A] int prime;
[B] int k;
[C] int i;
[D] int v;
(6)
[A] sqrt(n)+1
[B] i+1
[C] prime(n)
[D] sqrt(n)
(7)
[A] "%d is a prime!
\n", n
[B] "%d is not a prime! \n, n"
[C] "%d is a prime!
\n, n"
[D] "%d is not a prime! \n", n
(8)
[A] "%d is a prime!
\n", n
[B] "%d is not a prime! \n, n"
[C] "%d is a prime!
\n, n"
[D] "%d is not a prime! \n", n
(9)
[A] k=sqrt(p);
[B] k=sqrt(i);
[C] i=sqrt(p);
[D] p=sqrt(k);
(10)
[A] if(p%i==0) v=0;
[B] if(p%i=0) v=0;
[C] if(p%i==0) v==0;break;
[D] if(p%i==0) v=0;break;
3、 【程序说明】以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。
【运行示例】
Input: adgda
yes!
【程序】
#include
char *huiwen(char *str)
{ char *p1,*p2; int i,t=0;
p1=str;p2= (10) ;
for(i=0;i<= (12) ;i++)
if( (13) ){t=1;break;}
if( (14) ) return("yes!");
else return("no!");
}
void main()
{ char str[50];
printf("Input:"); scanf("%s",str);
printf("%s\n", (15) );
}
(11)
[A] str+strlen(str)-1
[B] str
[C] str+strlen(str)
[D] *str
(12)
[A]
strlen(str)
[B] strlen(str)/2+1
[C]
strlen(str)/2
[D] strlen(str)/2-1
(13)
[A] *p1==*p2
[B] p1++!=p2—
[C] *p1!=*p2
[D] *p1++!=*p2--
(14)
[A]
t!=0
[B] t==0
[C] i>strlen(str)
[D] i=strlen(str)
(15)
[A]
*str
[B] huiwen(str)
[C] *huiwen(str)
[D] str
三、程序阅读题(阅读下列程序,写出运行结果,每小题2分,共20分)
1、
【程序】
#include
void main( )
{ int x=31,y=2,s=0;
do
{ s-=x*y;
x+=2;
y-=3;printf("%d %d %d\n",x,y,s);}
while( x%3==0);
}
(1)程序运行时,输出结果的第1行是______。
[A] 31 2 -62
[B] 31 2 0
[C] 31 2 -62
[D] 33 –1 -62
(2)程序运行时,输出结果的第2行是______。
[A] 33 -1 62
[B] Press any key to continue...
[C] 35 -4 -29
[D] 无结果
2、
【程序】
#include
void main()
{
int i,j,n;char ch='A';
scanf("%d",&n);
if(n<11){
for(i=1;i<=n;i++){
for(j=1;j<=n-i+1;j++){
printf("%2c",ch);
ch++;}
printf("\n");
}
}
else printf("n is too large!\n");
printf("\n");
}
(3)程序运行时,输入5,第一行输出 。
[A] A A A A A
[B] A B C D E
[C] A B C D
[D] A
(4)程序运行时,输入5,第二行输出 。
[A] B C
[B] A A A A
[C] A B
[D] F G H I
(5)程序运行时,输入15,第一行输出 。
[A] n is too large!
[B] A A A A A A A A A A A A A A A
[C] A B C D E F G H I J K L M N O
[D] A B C D E F G H I J K L M N
3、
【程序】
#include
void main()
{int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++){ptr=a+i; scanf("%d",ptr); ptr++;}
for(i=0;i<3;i++)
{for(j=0;j<2;j++) printf("%2d",a[i][j]);
printf("\n");
}
}
(6)程序运行时输入:1 2 3<回车>,则输出结果的第一行是______。
[A] 1 3 [B] 0 0 [C] 1 2 [D] 1 0
(7)程序运行时输入:1 2 3<回车>,则输出结果的第二行是______。
[A] 0 0 [B] 2 0 [C] 3 0 [D] 2 3
(8)程序运行时输入:-1 0 9<回车>,则输出结果的第三行是______。
[A] 0 9 [B] -1 0 [C] 0 0 [D] 9 0
4、
【程序】
#include
void main()
{
struct student
{long int num;
char name[20];
char sex;
char addr[20];
}a={10101,"Li Lin",'M',"123 Beijing Road"};
printf("No.:%ld\nname:%s\nsex:%c\naddress:%s\n",a.num,a.name,a.sex,a.addr);
}
(9)程序运行时,输出结果的第一行是______。
[A] No.:10101
[B] 0
[C] 10101,Li Lin,M,123 Beijing Road
[D] 10101,"Li Lin",'M',"123 Beijing Road"
(10)程序运行时,输出结果的第三行是______。
[A] 空行
[B] Press Any Key to Continue…
[C] sex:M
[D] Null
四、编程题(每题10分,共30分)
1. 编写程序,要求从键盘上输入一个数给x,计算并输出分段函数y的值。
2. 编写程序,计算1!-2!+3!-4!+...-10!。
3. 编写程序,由键盘输入10个整数,要求统计奇数的个数cnt1和偶数的个数cnt2,并将统计结果写入文件d:\data中。
y=
-x x<0
sin(x)+x 0<=x<=1
x2 x>=10
共5页—第2页
本文档为【复习试卷c程序模拟试卷模拟试卷mhy】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。