上学期C语言A卷Word文档格式.docx
- 文档编号:365981
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:17
- 大小:23.43KB
上学期C语言A卷Word文档格式.docx
《上学期C语言A卷Word文档格式.docx》由会员分享,可在线阅读,更多相关《上学期C语言A卷Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
k);
B.scanf("
%d%d%d"
C.scanf("
%2d%2d%2d"
D.scanf("
i=%d,j=%d,k=%d"
7、若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的结果是__________。
A.1B.2C.2.5D.2.0
8、设变量m,n,a,b,c,d均为0,执行(n=a==b)||(m=c==d)后,m,n的值是_______。
A.0,1B.0,0C.1,0D.1,1
9、设有程序段
x=-1;
do{x=x*x;
}
while(!
x);
以下说法正确的是__________。
A.循环执行一次B.循环执行二次C.是死循环D.有语法错误
10、有以下程序
main(){
inta=16,b=21,m=0;
switch(a%3){
case0:
m++;
break;
case1:
switch(b%2){
default:
m++;
printf("
%d\n"
m);
}
执行后输出结果是。
A.4B.3C.2D.1
11、若有声明“inta[]={1,2,3,4},*p,i;
”,则以下程序段中不能输出13的是。
A.for(i=0;
i<
4;
i+=2)printf(“%d”,a[i]);
B.for(p=0;
p<
p+=2)printf(“%d”,a[p]);
C.for(p=a;
a+4;
p+=2)printf(“%d”,*p);
D.for(p=a,i=0;
i+=2)printf(“%d”,p[i]);
12、下面关于循环语句for、while、do_while的叙述中,正确的是。
A.三种循环语句的循环体都必须放入一对花括号中
B.三种循环语句中都可以缺省循环终止条件表达式
C.三种循环语句的循环体都至少被无条件地执行一次
D.三种循环语句都可能出现无穷循环
13、已知有声明"
chara[]="
Itismine"
*p="
;
"
下列叙述中错误的是。
A.a="
yes"
和p="
都是正确的
B.strcpy(a,"
)和strcpy(p,"
)语法都是正确的
C.*a等于*p
D.sizeof(a)不等于sizeof(p)
14、有以下程序
inti,s=0;
for(i=1;
10;
i+=2)
s+=i+1;
printf("
s);
程序执行后的输出结果是。
A.自然数1~9的累加和
B.自然数1~10的累加和
C.自然数1~9中的奇数之和
D.自然数1~10中的偶数之和
15、若程序中定义了以下函数
doublemyadd(doublea,doubleb){return(a+b);
}
并将其放在调用语句之后,则调用之前需对该函数进行说明,错误的说明是。
A.doublemyadd(double,double);
B.doublemyadd(doublea,b);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley)
16、以下程序的运行结果是______。
#defineMAX(A,B)(A)>
(B)?
(A):
(B)
#definePRINT(Y)printf(“Y=%d\t”,Y)
main()
{
inta=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
PRINT(t);
A.Y=3B.存在语法错误C.Y=0D.Y=7
17、下面函数的功能是______。
intfunl(char*x)
{
char*y=x;
while(*y++);
return(y-x-1);
A.将字符串x复制到字符串yB.比较两个字符串的大小
C.求字符串的长度D.将字符串x连接到字符串y后面
18、以下程序的输出结果是______。
voidfun(inta,intb,intc)
{a=456;
b=567;
c=678;
intx=10,y=20,z=30;
fun(x,y,z);
%d,%d,%d\n"
x,y,z);
A.30,20,10B.456,567,678C.10,20,30D.678,567,456
19、若已定义inta[9],*p=a;
并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是______。
A.p+1B.a++C.a+1D.++p
20、若有如下语句:
structpupil{
charname[20];
intage;
intsex;
}pup[5],*p;
p=pup;
则以下scanf函数调用语句中对结构体变量成员的不正确引用是______。
A.scanf(“%s”,pup[0].name);
B.scanf(“%d”,&
pup[0].age);
C.scanf(“%d”,p->
age);
D.scanf(“%d”,&
(p->
sex));
二、填空题(每空1分,共10分)
1、C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为【1】。
2、语句:
%d"
strlen("
a0\0a0\0"
));
的输出结果是___【2】___。
3、若有以下定义chara;
intb;
floatc;
doubled;
则表达式a*b+d-c值的类型为___【3】___。
4、能表述”20<
x<
30或x<
-100”的C语言表达式是【4】。
5、语句while(!
e)中表达式!
e等价于___【5】__。
6、执行以下程序段中的语句"
k=M*M+1"
后k的值是【6】。
#defineN2
#defineMN+1
k=M*M+1:
7、假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};
,则数组x在内存中所占字节数是___【7】___。
8、若有声明"
intx;
且sizeof(x)的值为2,则当x值为【8】时"
x+1>
x"
为假。
9、在以下程序的main函数中,语句"
fun(x,10);
内的实参x表示数组x的【9】。
voidfun(inta[10],intn)
{inti;
for(i=0;
n;
i++)a[i]++;
{intx[10]={0};
fun(x,10);
10、若要使表达式p="
jiangsu"
无任何错误(包括语法错误和警告错误),p的声明形式应为【10】。
三、程序阅读题(每题3分,共30分)
1、以下程序运行后,输出结果是【1】。
main(){
inta=3,b=4;
printf("
%d%d\n"
--a+b,++b);
2、以下程序运行后,输出的结果是【2】。
main(){
inta=3,b=4,c=5;
if(a>
b)
c=a;
a=b;
b=c;
printf(“a=%d,b=%d\n”,a,b);
3、以下程序运行后,输出结果是【3】。
main(){
inti,j;
for(i=1,j=1;
=100;
i++){
if(j>
=20)break;
if(j%3==1){j+=3;
continue;
}
j-=5;
i=%d\n"
i);
4、有如下程序
intx=1,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
b++;
}
printf("
a=%d,b=%d\n"
a,b);
该程序的输出结果是【4】。
5、以下程序运行后,输出结果的最后一行是【5】。
inti;
voidsums(intn){
ints=1;
for(i=1;
i++)
s+=i;
printf(“%d\n”,s);
sums(i);
6、以下程序运行后,输出结果是【6】。
{inti,j,row,col,m;
intarr[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};
m=arr[0][0];
for(i=0;
i<
3;
i++)
for(j=0;
j<
j++)
if(arr[i][j]<
m){m=arr[i][j];
row=i;
col=j;
printf(“%d,%d,%d\n”,m,row,col);
7、以下程序运行后,输出结果是【7】。
{
charch[7]={“65ab21”};
inti,s=0;
for(i=0;
ch[i]>
='
0'
&
&
ch[i]<
9'
i+=2)
s=10*s+ch[i]-'
8、以下程序运行后,输出结果是【8】。
staticchara[]="
ABCDEFGH"
b[]="
abCDefGh"
char*p1,*p2;
intk;
p1=a;
p2=b;
for(k=0;
k<
=7;
k++)
if(*(p1+k)==*(p2+k))printf("
%c"
*(p1+k));
\n"
);
9、以下程序运行后,输出结果是【9】。
#include<
stdio.h>
main(){
staticchara[]="
Program"
*ptr;
for(ptr=a;
ptr<
a+7;
ptr+=3)
putchar(*ptr);
10、以下程序运行后,输出结果是【10】。
uniondata
{chara;
longc;
}a;
a.a=’A’;
a.b=0x4849;
a.c=0x30313233;
printf(“%c\n”,a.a);
四、程序填空题(每空2分,共10分)
1、以下程序是实现如下功能:
有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小。
#include<
math.h>
{inta,b,min=2048,i,mini;
=sqrt(2048);
{if(2048%【1】==0)
{a=i;
b=2048/i;
if(min>
a+b)
{min=【2】;
mini=i;
%d,%d\n"
mini,2048/mini);
}
2、以下程序是实现如下功能:
输出100到1000之间所有的素数并且每行只输出6个素数。
#include<
intprime(intn)
{inti;
for(i=2;
=sqrt(n);
if(n%i==0)
【3】;
【4】;
{inti,c=0;
for(i=100;
1000;
if(prime(i)==1)
{printf(“%d“,i);
if(【5】)
printf(“\n”);
五、编程题(每题5分,共10分)
1、编写程序,计算s=1+(1+2)+(1+2+3)+…+(1+2+3+…+10)的值。
2、完善下面fun函数,该函数功能是利用递归方法将一个存放在数组str中的字符串逆序输出。
(如:
原字符串China,输出结果为anihC)
voidfun(charstr[])
........
南京林业大学答题纸(A)
1~~5
6~~10
11~~15
16~~20
【1】【2】【3】
【4】【5】【6】
【7】【8】【9】
【10】
【1】【2】【3】
【4】【5】【6】
【7】【8】【9】
【10】
【1】【2】
【3】【4】
【5】
南京林业大学答案(A)
C
B
D
A
【1】字母或下划线【2】2【3】double
【4】(x>
20&
30)||x<
-100【5】e==0【6】6
【7】20【8】32767【9】首地址
【10】char*p
【1】75【2】a=4,b=5【3】i=8
【4】a=2,b=1【5】i=11【6】-850,2,0
【7】6【8】CDG【9】Pgm
【10】3
【1】i【2】a+b
【3】return0【4】return1
【5】++c%6==0
五、编程题(每题5分,共10分)参考
1、
inti,n,s,sum=0;
scanf("
n);
for(i=1;
=n;
s=0;
for(j=1;
j<
=i;
j++)
s+=j;
sum+=s;
sum);
2、
voidfun(charstr[])
if(*str!
=’\0’)
{
fun(str+1);
putchar(*str);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上学 语言