C语言练习题上半部docWord格式.docx
- 文档编号:19511747
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:43
- 大小:43.37KB
C语言练习题上半部docWord格式.docx
《C语言练习题上半部docWord格式.docx》由会员分享,可在线阅读,更多相关《C语言练习题上半部docWord格式.docx(43页珍藏版)》请在冰豆网上搜索。
A)定义不合法。
B)是一个指针数组名,每个元素是一个指向整型变量的指针。
C)是一个指针,它指向一个具有3个元素的一维数组。
D)是一个指向整型变量的指针。
12.已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是
if(x>
y)
z=x;
x=y;
y=z;
A)x=10,y=20,z=30
B)x=20,y=30,z=30
C)x=20,y=30,z=10
D)x=20,y=30,z=20
13.若有以下程序片段。
则中的表达式都是对数组元素的正确引用(0≤i<
4,0≤j<
3)。
main()
{inta[4][3]={0},(*p)[3],i,j;
p=a;
……}
A)a[i][j],a[i]+j,*(*(a+i)+j)B)*(p+i)[j],p[i]+j,*(*(p+i)+j)
C)*(p+i)[j],*(a+i)[j],*(p+i+j)D)p[i][j],*(p[i]+j),*(a[i]+j)
14.若有两个字符串str1,str2,要比较二者是否相等,正确的if语句是
A)if(str1==str2)B)if(str1=str2)
C)if((str1-str2)==0)D)if(strcmp(str1,str2)==0)
15.执行如下程序,则结果为
#defineP(a,b)a*b+1
{intx=1,y=2,z;
z=P(x+y,4+3);
printf("
%d"
z);
}
A)22B)13C)23D)21
16.某结构体变量定义如下,对此结构体变量中的元素的引用形式正确的是
structa
{intnum;
charname[10];
}b1,*p;
p=&
b1;
A)b1->
numB)p.nameC)(*p).nameD)*p.num
17.若有两个基本类型相同的指针p1和p2,则下列运算不合理的是
A)p1+p2B)p1-p2C)p1=p2D)p1==p2
18.下列关于C语言的文件操作叙述正确的是
A)先关闭文件B)先测试文件已存在,再打开文件
C)先打开文件D)对操作顺序无要求
19.主函数main()带参数的正确形式是
A)main(int*argc,charargv)B)main(intargc,charargv[])
C)main(intargc,char*argv)D)main(intargc,char*argv[])
20.设有以下定义,则共用体变量d在内存中占的字节数是
union
{floata;
intb;
charc;
}d;
A)7B)4C)6D)8
二、程序填空题(10个空,每空2分,共20分)
1.从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。
#include<
stdio.h>
{FILE*fp;
charch,filename[10];
scanf("
%s"
filename);
if((fp=
(1)(filename,"
w"
))==NULL)
{printf("
cannotopenfile\n"
);
exit(0);
ch=getchar();
ch=getchar();
while(
(2))
{fputc(ch,fp);
putchar(ch);
(3)(fp);
}
2.求键盘输入的字符串的长度
#include"
stdio.h"
{charstring[50];
intj=0,len=0;
printf(“\nQingshuru1gezifuchuan:
”);
gets(string);
while((4))
{(5);
j++;
printf("
\nItis%d"
len);
3.求个位上是2且能被6整除的所有4位数的个数。
{inti;
intcount;
count=0;
for(i=1002;
i<
___(6)____;
i++)
if(___(7)____)count++;
count=%d\n"
count);
4.由键盘输入10个无序的数,找出其中最小数及其下标后,每5个数为1行输出这10个数,然后输出最小数及其下标
{inta[10],i,min,temp;
for(i=0;
10;
scanf("
_____(8)_____);
min=a[0];
temp=0;
for(i=1;
if(a[i]<
min)
{_____(9)____;
temp=i;
\n"
{if(___(10)___)printf("
%6d"
a[i]);
\nmin=%dposition=%d\n"
min,temp);
长安大学2004-2005学年第二学期试题(B)卷
一、单向选择题(每题2分,共60分)
1)以下变量名中,正确的是:
A).$xB).2aC)._alD).a-1
2)intx;
下面哪个表达式满足x为奇数时为真,x为偶数时为假?
A).x%2==0B).(x/2*2-x)==0C).!
(x%2)!
=0D).(x%2)
3)若已定义:
inta[9],*p=a;
并在以后的语句中未改变p的值,
不能表示a[1]地址的表达式为________
A).p+1B).a+1C).a++D).++p
4)逗号表达式(x=3*2,++x),x=x+10执行后x的值为
A).7B).6C).17D).16
5)以下选项中属于C语言的数据类型是________
A).复数型B).双精度型C).逻辑型D).集合型
6)指针s所指字符串的长度为
char*s="
0\101+101\\Name-\xab"
;
A).13B).21C).17D).20
7)下面程序的输出结果是
main()
{intx=3;
do{printf(“%2d”,x--);
}while(!
x);
A).3B).321C).不打印任何内容D).陷入死循环
8)在C语言中,不正确的int类型的常数是________
A).32768B).0C).037D).0xAF
9)inta=2,b=-2;
语句printf("
(a=2)&
&
(b=-2));
的输出结果是
A).无输出B).0C).-1D).1
10)设有定义:
intx=1,y=-1;
则语句:
%d\n"
(x--&
++y));
的
输出结果是________
A).1B).0C).-1D).2
11)下列描述中不正确的是________
A).字符型数组中可能存放字符串
B).可以对字符型数组进行整体输入、输出
C).可以对整型数组进行整体输入,输出
D).不能在赋值语句中通过赋值运算符"
="
对字符型数组进行整体赋值
12)当c的值不为0时,________能正确将c的值赋给变量a、b
A).c=b=a;
B).(a=c)||(b=c)C).(a=c)&
(b=c)D).a=c=b
13)若w=1,x=2,y=3,z=4,则表达式w<
x?
w:
(y<
z?
y:
z)结果是
A)4B)3C)2D)1
14)以下程序的输出结果是________
main()
{intx=10,y=10,i;
for(i=0;
x>
8;
y=++i)
%d%d"
x--,y);
A).10192B).9876C).10990D).101091
15)已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是
y)
x=y;
y=z;
A).x=10,y=20,z=30B).x=20,y=30,z=20
C).x=20,y=30,z=10D).x=20,y=30,z=30
16)数组名作为实参调用函数,实际传给形参的是
A).数组中全部元素值B).数组中元素个数
C).数组第一个元素值D).数组首地址
17)若定义inta=6;
则a+=a*a的值为
A).72B).36C).42D).表达式错误
18)执行以下程序段后,s的值为
inta[]={5,3,7,2,1,5,4,10};
ints=0,k;
for(k=0;
k<
k+=3)
s+=a[k];
A).17B).11C).13D).27
19)以下程序的输出结果是________
main()
{inti,x[3][3]={{9,8,7},{6,5,4},{3,2,1}},*p=&
x[1][1];
2;
i++)printf("
%d"
p[i]);
A).87B).65C).54D).98
20)以下程序的运行结果是
{inta[10]={10,9,8,7,6,5,4,3,2,1},*p=a;
printf(“%d\n”,*(p+3));
A)10B)6C)7D)8
21)以下程序的运行结果是________
{chara[10]={'
1'
'
2'
3'
4'
5'
6'
7'
8'
9'
’\0’},*p;
inti;
i=8;
p=a+i;
%s\n"
p-3);
A)6B)6789C)9D)789
22)以下程序的输出结果是
#definef(x)x+x
{inta=6,b=2,c;
c=f(a)*f(b);
printf("
%d\n"
c);
A).48B).64C).20D).12
23)以下程序的输出结果是________
main()
{intn[3][3]={1,2,3,4,5,6,7,8,9},i,j;
for(i=0;
i<
2;
i++)
for(j=0;
j<
j++)n[i][j]=0;
n[i][j]);
A).0B).6C).9D).8
24)以下程序的输出结果是________
{intw=5;
fun(w);
fun(intk)
{if(k>
0)fun(k-1);
printf("
k);
A).54321
B).012345
C).12345
D).543210
25)以下程序的输出结果是________
intd=1;
fun(intp)
{staticintd=5;
d+=p;
d);
return(d);
{inta=3,b;
b=a+fun(d);
fun(b));
A).699B).669C).61515D).6615
26)请选出以下程序段的输出结果
#defineMIN(x,y)((x)<
(y)?
(x):
(y))
{inti,j,k;
i=10;
j=15;
k=10*MIN(i,j);
printf(“%d\n”,k);
A).15B).100C).10D).150
27)以下对结构体变量stul中成员age的非法引用是
structst
{intage;
intnum;
}stul,*p;
stul;
A).stul.ageB).ageC).p→ageD).(*p).age
28)以下程序的输出结果是________(提示:
字母A的ASCII代码是65)
{union{charc[2];
intk;
}r;
r.c[0]=67;
r.c[1]=0;
r.i=65;
r.k=66;
%c%d%d\n"
r.c[0],r.i,r.k);
A).676566B).B6666C).C6566D).666666
29)主函数main()带参数的一般形式是
A)main(int*argc,charargv)B)main(intargccharargv[])
C)main(intargccharargv)D)main(intargcchar*abc[])
30)要打开一个已存在的非空文件“file”用于修改,选择正确的语句是
A).fp=fopen(“file”,”r”)B).fp=fopen(“file”,”ab+”)
C).fp=fopen(“file”,”w”)D).fp=fopen(“file”,”r+”)
二、填空题(每空2分,共20分)
1).下面程序用起泡法对数组中的10个元素值从小到大排序。
{inta[11],i,j,t;
printf(“input10numbers:
\n”);
11;
i++)scanf(“%d”,&
a[i]);
for(j=1;
j<
=9;
j++)
=10-j;
if(①)
{t=a[i];
②;
a[i+1]=t;
printf(“thesortednumbers:
printf(“%d”,a[i]);
2).下面程序的功能是:
输出100以内能被3整除且个位数为6的所有正整数。
{inti,j;
③;
{j=i*10+6;
if(④)continue;
printf(“%5d”,j);
3).函数strcat(strl,str2)实现将字符串str2拼接到字符串strl后面的功能。
char*strcat(char*str1,char*str2)
{char*t=str1;
while(*str1!
=’\0’)⑤;
while(⑥);
return(t);
}
4).以下程序的功能是:
从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
请填空。
{floatx[100],sum=0.0,ave,a;
intn=0,i;
Entermark:
%f"
a);
while(a>
=0.0&
a<
=100)
{sum+=___⑦____;
x[n]=____⑧____;
n++;
ave=_____⑨____;
Output:
\n"
ave=%f\n"
ave);
n;
i++)
if(____⑩_)printf("
%f\n"
x[i]);
三、阅读下列程序,写出运行结果。
(每题2分,共10分)
1).运行完下面的程序后,a,b的值是
main()
{intx=10,y=9,a,b;
a=(--x==y++)?
--x:
++y;
b=x++;
printf(“a=%db=%d\n”,a,b);
2).运行完下面的程序后,结果是
{inti,x;
for(i=1,x=1;
=20;
{if(x>
=10)break;
if(x%2==1)
{x+=5;
continue;
x-=3;
printf(“i=%d,x=%d”,i,x);
3).有下面程序,现从键盘输入-1,则程序的输出是
{intx,y;
scanf(“%d”,&
if(x++<
0)y=-1;
elseif(x==0)y=0;
elsey=1;
printf(“y=%d\n”,y);
4).运行完下面的程序后,输出结果是
{inti,j,r,c,m;
intarray[3][3]={100,200,300,20,72,-30,-850,2,6};
m=array[0][0];
for(i=0;
3;
for(j=0;
if(array[i][j]<
m)
{m=array[i][j];
r=i;
c=j;
printf(“m=%d,r=%d,c=%d\n”,m,r,c);
长安大学2005-2006学年第二学期试题(A)卷
一、选择题(每空2分,共60分)
1.以下变量名中,正确的是:
A.$xB.2a
C._alD.a-1
2.以下合法的常量是:
A.10e2.5B.e-3
C.100LD.100M
3.若x,y为float型量,x=5,y=5.8;
则命令printf(“%3.1f”,(x,y));
的输出结果是
A.5.05.8B.5.8
C.5.0D.输出格式不对
4.以下说法中正确的是__________.
A.C语言程序总是从第一个函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
5.下面程序的输出结果是__________.
{intx=20,y=10;
%d%d\n"
x--,--y);
A.209B.199
C.1910D.2010
6.有以下程序,运行后的输出结果是
string.h>
{char*p="
abcde\0fghjik\0"
printf(“%d\n"
strlen(p));
A.12B.15C.6D.5
7.C语言中,函数值的类型定义可以缺省,此时函数值的隐含类型是
A.voidB.int
C.floatD.double
8.以下程序的输出结果是
{intk=17;
printf("
%d,%o,%x\n"
k,k,k);
A.17,021,0x11B.17,17,17
C.17,0x11,021D.17,21,11
9.以下程序执行后sum的值是__________.
main()
{inti,sum;
for(i=1;
6;
i++)sum+=i;
sum);
A.15B.14
C.不确定D.0
10.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是__________.
A.地址传递B.单向值传递
C.由实参传给形参,再由形参传回实参D.传递方式由用户指定
11.以下程序运行后的输出结果是。
#defineS(x)1+4*x*x
{inti=2,j=3;
S(i+j));
A.20B.18C.101D.125
12.有如下定义,x变量占的字节数是
struct
{intn;
chara[10];
floatm;
}x;
A.10B.8C.14D.16
13.以下程序的输出结果是
{inti;
=5;
{if(i%2==1)printf(“*”);
elsecontinue;
printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题 上半部 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)