c语言试题及答案Word格式文档下载.docx
- 文档编号:22580546
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:55
- 大小:35.99KB
c语言试题及答案Word格式文档下载.docx
《c语言试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言试题及答案Word格式文档下载.docx(55页珍藏版)》请在冰豆网上搜索。
inti,x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句for(i=0;
i<
3;
i++)printf("
%d"
x[i][2-i]);
A.159 B.147 C.357 D.369
8、读出以下语句的输出结果是()
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010 B.99 C.910 D.109
9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()
if(x++>
5)printf("
x);
elseprintf("
x--);
A.7和5 B.6和3 C.7和4 D.6和4
10、设有如下定义:
char*aa[2]={"
abcd"
"
ABCD"
};
则以下说法中正确的是()
A)aa数组成元素的值分别是"
和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'
a'
和'
A'
的地址
11、以下语句的输出结果是()
inta=-1,b=4,k;
k=(++a<
0)&
&
!
(b--<
=0);
%d,%d,%d\n"
k,a,b);
A.1,0,4 B.1,0,3 C.0,0,3 D.0,0,4
12、下列程序的输出结果是()
char*p1="
*p2="
str[50]="
xyz"
;
strcpy(str+2,strcat(p1+2,p2+1));
%s"
str);
A.xyabcAB B.abcABz C.ABabcz D.xycdBCD
13、执行下面的程序后,a的值是()
#defineSQR(X)X*X
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
a);
A.10 B.1 C.9 D.0
14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()
A.P+i*2 B.P+(i-1)*2 C.P+(i-1) D.P+i
15、下列程序执行后输出的结果是()
intd=1;
fun(intp)
{intd=5;
d+=p++;
%d,"
d);
{inta=3;
fun(a);
d+=a++;
A.8,4 B.9,6 C.9,4 D.8,5
16、表达式:
10!
=9的值是()
A.true B.非零值 C.0 D.1
17、若有说明:
inti,j=7,*p=&
i;
则与i=j;
等价的语句是()
A.i=*p;
B.*p=*&
j;
C.i=&
D.i=**p;
18、不能把字符串:
Hello!
赋给数组b的语句是()
A.charb[10]={'
H'
'
e'
l'
o'
'
B.charb[10];
b="
"
C.charb[10];
strcpy(b,"
);
D.charb[10]="
19、在C程序中有如下语句:
char*func(intx,inty);
它是()
A.对函数func的定义。
B.对函数func的调用。
C.对函数func的原型说明。
D.不合法的。
20、以下程序的输出结果是()。
charstr[15]=”hello!
”;
printf(“%d\n”,strlen(str));
A.15 B.14 C.7 D.6
三、阅读程序题
1、intx=6,y=7;
printf(“%d,”,x++);
printf(“%d\n”,++y);
程序的输出结果是__________。
2、floatf=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是__________。
3、a=3;
a+=(a<
1)?
a:
1;
printf(“%d”,a);
结果是__________。
4、main()
{inta[5]={2,4,6,8,10},*P,**k;
p=a;
k=&
p;
*(p++));
**k);
5、main()
{inta,b;
for(a=1,b=1;
a<
=100;
a++)
{if(b>
=20)break;
if(b%3==1)
{b+=3;
continue;
b-=5;
}}
程序的输出结果a的值为__________。
四、程序填空题
1、求主次对角线之和。
{staticinta[][3]={9,7,5,1,2,4,6,8};
intI,j,s1=0,s2=0;
for(I=0;
I<
I++)
for(j=0;
j<
j++)
{if(__________)
s1=s1+a[I][j];
if(__________)
s2=s2+a[I][j];
}
printf(“%d\n%d\n”,s1,s2);
2、从键盘上输入10个数,求其平均值。
{inti;
floatf,sum;
for(i=1,sum=0.0;
11;
i++)
{__________;
__________;
printf(“average=%f\n”,sum/10);
3、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include
{
FILE*fp;
charc;
fp=__________;
do
c=getchar();
fputs(c,fp);
}while(c!
=EOF);
__________;
;
五、编程题
1、三个整数a、b、c,由键盘输入,输出其中最大的数。
2、从键盘输入的10个整数中,找出第一个能被7整除的数。
若找到,打印此数后退出循环;
若未找到,打印“notexist”。
3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分。
4、有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案
一、填空题
1、int,2个字节,-32768~+32767。
2、整型、实型、字符型。
3、-4。
4、结构体的成员占有各自不同的空间,而共用体的各成员放到同一存储空间。
5、a=1,b=3,c=2
7、”a”是字符串常量,而’a’是字符常量。
8、7,1。
二、选择题
1、B2、C3、D4、C5、C
6、D7、C8、D9、C10、D
11、D12、D13、B14、B15、A
16、D17、B18、B19、C20、D
三、阅读程序题
(1)6,8
(2)3.141593,3.1416,3.142(3)4(4)2,4(5)8
四、程序填空题
1、I==jI+j==22、scanf(“%f”,&
f);
sum+=f;
3、fopen(“myfile”,w)fclose(fp);
五、编程题
1、main()
{inta,b,c;
printf(“请输入三个整数:
”);
scanf(“%d,%d,%d”,&
if(aif(belseprintf(“max=%d\n”,b);
elseif(aelseprintf(“max=%d\n”,a);
2、#include”stdio.h”
{intI,a;
for(I=1;
=10;
{scanf(“%d”,&
a);
{if(a%7==0)
printf(“%d”,a);
break;
if(I==11)
printf(“notexist”);
3、floataverage(floatarray[],intn)
{intI;
floataver,sum=array[0];
Isum=sum+array[I];
aver=sum/n;
return(aver);
{floatave,score[10];
intI;
10;
scanf("
%f"
&
score[I]);
ave=average(score,10);
%f\n"
ave);
4、#include"
stdio.h"
#defineN3
structstudent
{longstu_num;
charsex;
charname[15];
intscore[4];
floataverage;
};
{intI,j,index;
floatsum,max;
structstudentstuarr[N];
I{printf("
pleaseinput%dstudentinformation:
\n"
I+1);
%ld,%c,%s"
stuarr[I].stu_num,&
stuarr[I].sex,stuarr[I].name);
4;
stuarr[I].score[j]);
I{sum=0.0;
sum+=stuarr[I].score[j];
stuarr[I].average=sum/4.0;
max=stuarr[0].average;
index=0;
Iif(stuarr[I].average>
max)
{max=stuarr[I].average;
index=I;
总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\n"
stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);
一、选择题(1—14每题1分,15-18每题1.5分,共20分)
1.可选作用户标识符的一组标识符是()
AvoidBc5_b8CForD3a
Define_53-abDO
WORDIFCaseint
2.在C语言中,非法的八进制是:
()
A.018
B.016
C.017
D.0257
3.在TC中,基本inta[4]类型变量所占的字节数是()
A.1
B.2
C.4
D.8
4.设x,y,z,k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为()
A.4
B.16
C.32
D.52
5.设int型变量a为5,使b不为2的表达式是()
A.b=a/2
B.b=6-(-a)
C.b=a%2
D.b=a>
3?
2:
1
6.一个C程序的执行是从()
A.main()函数开始,直到main()函数结束。
B.第一个函数开始,最后一个函数结束。
C.第一个语句开始,最后一个语句结束。
D.main()函数开始,直到最后一个函数。
7.C语言中用于结构化程序设计的三种基本结构是()
A.if、switch、break
B.ifwhilefor
C.whiledo-whilefor
D.顺序结构、选择结构、循环结构
8.以下叙述中不正确的是()
A.在不同的函数中可以使用相同名字的变量。
B.函数中的形式参数是局部变量。
C.在一个函数内的符合语句中定义变量在本函数范围内有效。
D.在一个函数内定义的变量只在本函数范围内有效。
9.若k为int类型,且k的值为3,执行语句k+=k-=k*k后,k的值为()
A.-3
B.6
C.-9
D.-12
10.有以下程序
{intx=3,y=3,z=3;
printf(“%d%d\n”(++x,y++),++z);
}输出结果()
A.33
B.34
C.42
D.43
11.若有定义和语句:
inta=21,b=021;
printf(“%x,%d\n”,a,b);
输出结果()
A.17,15
B.16,18
C.17,19
D.15,17
12.已有定义语句:
intx=3,y=4,z=5;
则值为0的表达式是()
A.x>
y++
B.x<
=++y
C.x!
=y+z>
y-z
D.y%z>
=y-z
13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是()
A.a>
=10ora<
=0
B.a>
=10||a<
C.a>
=10&
D.a>
=10|a<
14.n为整型常量,且n=2;
while(n--);
printf(“%d”,n);
执行后的结果是:
A.2
B.1
C.-1
D.0
15.若有以下定义和赋值double*q,a=5.5;
int*p,i=1;
double*q,a=5.5;
int*p,i=1;
p=&
q=&
a;
以下对赋值语句叙述错误的是()。
A)*p=*q变i中的值。
B)p=oxffd0;
将改变p的值,使p指向地址为ffd0的存储单元。
C)*q=*p;
等同于a=i;
D)*p=*q;
是取q所指变量的值放在p所指的存储单元
16.若有以下定义语句doublea[8],*p=a;
inti=5;
对数组元素错误的引用是()
A)*a
B)*a[5]
C)*(p+i)
D)p[8]
17.以下选项中不能使指针正确指向字符串的是()
A)char*ch;
*ch=“hello”
B)char*ch=“hello”
C)char*ch=“hello”;
ch=“bye”
D)char*ch”;
ch=“hello”
18.若有以下说明和定义语句:
unionuti{intn;
doubleg;
charch[9];
}
structsrt{floatxy;
unionutiuv;
}aa;
则变量aa所占内存的字节数是()
A)9
B)8
C)13
D)17
二、填空题(每空1分,共12分)
1.C语言源程序文件的扩展名是
(1),经过编译后,生成文件的扩展名是
(2),经过连接后,生成文件的扩展名是(3)。
2.把a,b定义成长整型变量的定义语句是(4)
3.设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为(5)
4.已有定义:
floatx=5.5;
则表达式:
x=(int)x+2的值为(6)
5.已有定义:
intx=0,y=0;
(x+=2,y=x+3/2,y+5)后,变量x的值为(7),变量y的值为(8),表达式的值为(9)。
6.执行以下for(i=1;
i++<
=5)语句后,变量i的值为(10)。
7.数组是表示类型相同的数据,而结构体则是若干(11)数据项的集合。
8.C语言中文件是指(12)。
三、程序补充题(每空3分,共24分)
1.从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
{floats,gmax,gmin;
scanf(“%f,”&
s);
gmax=s;
gmin=s;
while
(1)
{if(s>
gmax)gmax=s;
if
(2)gmin=s;
scanf(“%f”,&
printf(“gmax=%f\ngmin=%f\n”gmax,gmin);
2.求任意两个正整数的最大公约数和最小公倍数
#include“stdio.h”
{intr,m,n,temp,gcd,lcm;
printf(“entertwonumberplease:
scanf(“(3)”,&
m,&
n);
lcm=m*n;
while(m%n!
=0)
{r=m%n;
(4);
n=r;
gcd=n;
lcm=lcm/n;
printf(“gcd=%d\nlcm=%d\n”,gcd,lcm);
3.求y的x次方。
Doublefun1(doubley,intx)
main(){inti;
doublez=1.0;
for(i=1;
i(5);
z=(6);
returnz;
4.对输入一个整数进行判断,若是偶数,输出even,否则输出odd,在子函数fun2功能是判定整数是否为偶数,若是偶数,返回1,否则返回0。
intfun2(intx)
{if(x%2==0)(7);
return0;
{intn;
scanf(“%d”,&
if(8)printf(“even\n”);
elseprintf(“odd\n”);
四、按格式写出程序运行结果。
(每题4分共20分)
1.main()
{inta=1,c=65,d=97;
printf(“a8=%o,a16=%x\n”,a,a);
printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);
d++;
printf(“d10=%d,dc=%c\n”d,d);
程序运行结果为:
2.有以下程序
voidf(intx,inty)
{intt;
if(x<
p>
{inta=4,b=3;
c=5;
f(a,b);
f(a,c);
f(b,c);
printf(“%d,%d,%d”,a,b,c);
}执行后的结果是:
3.程序执行的结果是()
{inti=0,a=2;
if(i==0)printf(“**”);
elseprintf(“$$”);
printf(“*”);
4.有以下程序
{intsum=0,n;
while(n<
=5)
{sum+=n;
n++
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)