C复习题Word格式.docx
《C复习题Word格式.docx》由会员分享,可在线阅读,更多相关《C复习题Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
![C复习题Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/21/960602af-6013-405e-a0dc-e16a465e99dc/960602af-6013-405e-a0dc-e16a465e99dc1.gif)
b[2],"
ABC"
%s\n"
b);
CDABC
第4题(2.0分)题号:
1173
#include<
stdio.h>
intb;
intfun(inta)
{staticintc=2;
return((++a)+(++b)+(++c));
voidmain()
{inti,a=1;
2;
i++)
%5d"
fun(a));
68
第5题(2.0分)题号:
1147
在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】.
auto
=========或=========
自动型
第6题(2.0分)题号:
1160
有以下定义和语句
structdate
{intday;
intmonth;
intyear;
union
{intshare1;
floatshare2;
}share;
}a;
则sizeof(a)的值是【1】.
10
第7题(2.0分)题号:
1428
以下程序的运行结果是【1】
{inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
inti;
int(*p)[4]=a;
a[2][3]=%d\n"
i,j,*(*(p+i)+j));
15
第8题(2.0分)题号:
1427
voidswap(int**r,int**s)
{int*t;
t=*r;
*r=*s;
*s=t;
{inta=1,b=2,*p,*q;
p=&
a;
q=&
b;
swap(&
p,&
q);
%d,%d\n"
*p,*q);
2,1
第9题(4.0分)题号:
1155
以下程序运行时,输出结果的第一行是【1】,第二行是【2】.
voidf(int*x,inty)
{*x=y+1;
y=*x+2;
}
main()
{inta=2,b=2;
f(&
a,b);
%d\n%d"
a,b);
3
=======(答案2)=======
2
第10题(4.0分)题号:
1152
设有以下main函数
main(intargc,char*argv[])
{while(argc>
1)
{++argv;
%s\n"
*argv);
--argc;
经过编译、连接后得到可执行文件名为c1.exe,
若在系统的命令状态下输入命令行:
c1nanjingxiaozhuangcollege<
回车>
则在第一行输出【1】,第三行输出【2】.
nanjing
college
第11题(4.0分)题号:
1179
请填空以使程序完整。
有一个m*n的矩阵,以下程序的功能是求出其中值最大的元素的值,以及相应得行号和列号。
#defineM4
#defineN3
{
inti,j,row=0,colum=0,max;
inta[M][N]={{1,23,3},{4,8,6},{17,6,1},{0,11,17}};
【1】;
for(i=0;
=3;
for(j=0;
j<
=2;
j++)
if(【2】)
{
max=a[i][j];
row=i;
colum=j;
printf("
max=%d,row%d,colum=%d\n"
max,row,colum);
max=a[0][0]
a[i][j]>
max
max<
a[i][j]
第12题(4.0分)题号:
1130
以下程序的功能是:
将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字
符串为:
556,则输出十进制整数366.请填空.
{chars[6];
intn,i=0;
gets(s);
n=【1】-'
0'
;
while(【2】!
='
\0'
)n=n*8+s[i]-'
%d\n"
n);
s[0]
s[++i]
第13题(6.0分)题号:
1177
该程序功能是:
将有10个元素的整型数组a中下标值为偶数的元素从大到小排列,其他元素不变。
#definek10
inta[k]={1,2,5,7,9,3,4,6,8,10},t;
inti,j;
k;
a[i]);
=【1】;
i=i+2)
for(j=i+2;
j+=2)
if(【2】)
{t=a[i];
【3】;
a[j]=t;
k-2
a[i]<
a[j]
=======(答案3)=======
a[i]=a[j]
第14题(6.0分)题号:
1178
该程序的功能是把从键盘输入的十进制(long型)以16进制数的形式输出。
main()
charb[16]={'
'
1'
2'
3'
4'
5'
6'
7'
8'
9'
A'
B'
C'
D'
E'
F'
};
intc[64],d,i=0;
longn;
Enteranumber:
scanf("
%ld"
n);
do
c[i]=【1】;
i++;
n=【2】;
}while(n!
=0);
Transmitemewbase:
for(--i;
i>
=0;
--i)
【3】;
%c"
b[d]);
n%16
n/16
d=c[i]
第15题(6.0分)题号:
1157
阅读以下程序
main()
{char*str[3]={"
Fortrain"
"
Prolog"
Pascal"
char**p;
p=str;
i++,p++)
%c\n"
(*(*p+3)+1));
该程序第1行、第2行及最后一行的输出分别为【1】、【2】和【3】.
u
m
d
第16题(6.0分)题号:
1419
以下程序使用递归方法求数组中的最大值及其下标值,请填空:
#defineM10
voidfindmax(int*a,intn,inti,int*pk)
{if(i<
n)
{if(a[i]>
a[*pk])【1】;
findmax(a,n,i+1,【2】);
{inta[M],i,n=0;
\nEnter%ddata:
M);
M;
%d"
【3】);
findmax(a,M,0,&
Themaximumis:
%d\n"
a[n]);
it'
sindexis:
*pk=i
&
(*pk)
a+i
第17题(4.0分)题号:
1156
Basic"
VisualC++"
i<
i++,p++)
该程序第1行、第2行及最后一行的输出分别为【1】、【2】和【3】.
j
v
二、单项选择共20题(共计40分)
1300
以下合法的赋值语句是().
A:
x=y=100
B:
d--;
C:
x+y
D:
c=int(a+b);
B
1294
已知字符A的ASCII码为65,则执行下列函数调用语句时,不能输出字符B的是().
putchar('
putchar("
B"
putchar(66);
\x42'
1303
若以下选项中的变量已正确定义,则正确的赋值语句是().
x1=86.8%3
1+9=x2
x3=0x1f
x4=1+6=7
C
1301
若有声明"
intx=2,y=1,z=0;
"
则下列关系表达式中有语法错误的是________.
x>
y=2
z>
y>
x
y==1
x==(x=0,y=1,z=2)
A
1299
有声明intx=2;
以下表达式中值不等于8的是________.
x+=2,x*2
x+=x*=x
(x+7)/2*((x+1)%2+1)
x*7.2/x+1
D
1307
若有数组A和B的声明"
staticcharA[]="
ABCDEF"
B[]={'
'
则数组A和数组B的长度分别是________.
7,6
6,7
6,6
7,7
1306
以下程序运行后的输出结果是________.
{chara[7]="
a0\0a0\0"
inti,j;
i=sizeof(a);
j=strlen(a);
%d%d"
i,j);
22
72
75
62
990
以下不正确的说法为()
在函数内的复合语句中定义的变量在本函数范围内有效
在不同函数中可以使用相同名字的变量
在函数内定义的变量只在本函数范围内有效
形式参数是局部变量
第9题(2.0分)题号:
1529
以下程序运行结果()
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
%d\n"
fun(3));
1
第10题(2.0分)题号:
1312
下面程序运行后的输出结果是______.
main()
{chararr[2][4];
strcpy(arr[0],"
you"
strcpy(arr[1],"
me"
arr[0][3]='
'
arr[0]);
}
you&
me
you
err
第11题(2.0分)题号:
1335
以下叙述正确的是().
一个用C语言编写的程序在运行时总是从main函数开始逐条执行
main函数是系统库函数
main函数中每行只能出现一条语句
main函数必须出现在所用其它函数之前
第12题(2.0分)题号:
1331
语句printf("
(a=2)&
(b=-2));
的输出结果是()
无输出
结果不确定
-1
第13题(2.0分)题号:
1342
若有函数fun的定义为
voidfun(…)
{staticinta=1;
……
则下列叙述中不正确的是().
在每次调用fun函数时,变量a的值是上次调用结束时a的值
在fun函数之外,可以用变量名a直接引用a的值
在其它函数中,可以出现声明doublea=2.5;
fun函数的形式参数不能取名为a
第14题(2.0分)题号:
1531
以下程序输出结果是()
voidmain()
inti,a[10];
for(i=9;
i--)
a[i]=10-i;
%d%d%d"
a[2],a[4],a[8]);
852
741
862
369
第15题(2.0分)题号:
1313
以下程序的输出结果是().
for(i='
=T;
i++)printf("
i+32);
编译不通过,无输出
ABCDEFGH
abcdefghi
abcdefgh
第16题(2.0分)题号:
1330
以下关于if语句,描述错误的是().
条件表达式可以是任意的表达式
条件表达式只能是关系表达式或逻辑表达式
条件表达式的括号不可以省略
与else配对的if语句是其之前最近的未配对的if语句
第17题(2.0分)题号:
1332
以下程序段循环执行的次数是().
intk=0;
while(k=1)k++;
while
无限次
有语法错,不能执行
一次也不执行
执行1次
第18题(2.0分)题号:
1340
以下正确的叙述是()
在C程序中,语句之间必须要用分号"
分隔
若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型
在C程序中,无论是整数还是实数,都能准确无误地表示
在C程序中,%是只能用于整数运算的运算符
第19题(2.0分)题号:
2068
若有以下定义,则对a数组元素的正确引用是()
inta[5],*p=a;
p+5
*(a+2)
a+2
a+1
第20题(2.0分)题号:
1344
以下程序执行后的输出结果是().
{inti,s=0;
for(i=1;
10;
i+=2)s+=i+1;
s);
自然数1~9的累加和
自然数1~10的累加和
自然数1~9中的奇数之和
自然数1~10中的偶数之和