期末考试C语言复习题含答案沈阳工程学院Word文件下载.docx
《期末考试C语言复习题含答案沈阳工程学院Word文件下载.docx》由会员分享,可在线阅读,更多相关《期末考试C语言复习题含答案沈阳工程学院Word文件下载.docx(30页珍藏版)》请在冰点文库上搜索。
A.函数返回值类型不确定B.函数返回值是float型
C.函数返回值是int型D.函数返回值是void型
14、对于int*pa[5];
的描述,d是正确的。
A、pa是一个指向数组的指针,所指向的数组是5个int型元素
B、pa是一个指向某数组中第5个元素的指针,该指针是int型变量
C、pa[5]表示某个数组的第5个元素的值
D、pa是一个具有5个元素的指针数组,每一个元素是一个int型指针
15、对for(表达式1;
;
表达式3)可理解为___b_____。
A、for(表达式1;
0;
表达式3;
)
B、for(表达式1;
C、for(表达式1;
表达式1;
D、for(表达式1;
16、若有说明:
inta[4][4]={0}
则下面不正确的是__A______。
A、数组a的每个元素都可得到初值0
B、二维数组a的第一维大小为1
C、因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
D、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
17、若有说明:
intn=2,*p=&
n,*q=p;
,则以下非法的赋值语句是d。
A、p=q;
B、*p=*q;
C、n=*q;
D、p=n;
18、若有以下说明和定义
typedefint*INTEGER;
INTEGERp,*q;
以下叙述正确的是D。
A、P是int型变量B、程序中可用INTEGER代替int类型名
C、q是基类型为int的指针变量D、p是基类型为int的指针变量
19、有以下程序
main()
{chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘\0’};
inti,j;
i=sizeof(a);
j=strlen(a);
printf(“%d,%d\n”,i,j);
程序运行后的输出结果是b。
A、8,8B、8,7C、7,8D、9,8
20、在C程序中,可以把整型数以二进制形式存放到文件中的函数是A。
A、fprintf函数B、fread函数C、fwrite函数D、fputc函数
21、
22、设inta=2,b;
23、以下数组定义中不正确的是d。
A、inta[2][3];
B、intb[][3]={0,1,2,3};
C、intc[100][100]={0};
D、intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
24、能正确表示a和b同时为正或同时为负的逻辑表达式是d。
A、(a>
=0‖b>
=0)&
(a<
0‖b<
0)
B、(a>
=0&
b>
0&
b<
C、(a+b>
0)&
(a+b<
=0)
D、a*b>
0
25、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是b。
A、INPUTx,y,z;
B、scanf("
%d%d%d"
&
x,&
y,&
z);
C、scanf("
x,y,z);
D、read("
26、在Turbo2.0中,若定义charc;
.则变量c在内存中分配的字节数是a。
A、1个B、2个C、4个D、8个
27、在Turbo2.0中,若定义intc;
.则变量c在内存中分配的字节数是b。
28、在Turbo2.0中,若定义longc;
.则变量c在内存中分配的字节数是c。
29、以下运算符中优先级最高的是 c 。
A、&& B、+、-C、() D、%
31、以十六进制形式输出整数的格式说明符是 c 。
A、%uB、%ldC、%XD、%o
32、以八进制形式输出整数的格式说明符是 d 。
A、%uB、%ldC、%xD、%o
33、能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是d。
A、a>
=10ora<
=0B、a>
=10|a<
=0
C、a>
=10&
a<
=0D、a>
=10||a<
=0
34、下列程序段的输出结果是c。
x=9;
while(x>
7)
{printf("
*"
);
x--;
}
A、****B、***
C、**D、*
35、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是b。
A、地址传递B、单向值传递
C、双向值传递。
即由实参传给形参,再由形参传回给实参
D、由用户指定传递方式
36、以下正确的函数形式是d。
A、doublefun1(intx,inty)
{
z=x+y;
returnz;
B、fun1(intx,y)
intz;
C、intfun1(x,y)
intx,y;
doublez;
D、doublefun1(intx,inty)
37、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是b。
A、float型B、int型C、long型D、double型
38、一个C语言程序是由b。
A、一个主程序和若干子程序组成
B、若干函数组成
C、若干过程组成
D、若干子程序组成
39、已知:
char*s="
Name\Address"
;
则s所指的字符串的长度为c。
A、18B、16C、13D、14
40、若有条件表达(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是b。
exp:
!
00
A、(exp==0)B、(exp!
=0)C、exp==1D、(exp!
=1)
41、以下程序有语法性错误,有关错误原因的正确说法是c。
voidmain(void)
{
intk;
voidprt_char();
……
k=prt_char(G);
A、语句voidprt_char();
有错,它是函数调用语句,不能用void说明。
B、变量名不能使用大写字母。
C、函数原型说明和函数调用语句之间有矛盾。
D、函数名不能使用下划线。
42、若有如下定义,则下面在scanf函数调用语句中对结构体成员的引用不正确是a。
structpupil
charname[20];
intage;
intsex;
}pup[5],*p;
A、scanf("
%d"
p->
age);
B、scanf("
%s"
pup[0].name);
pup[0].age);
D、scanf("
(pup[1].sex));
43、若已有定义int(*p)();
则指针pb。
A、代表函数的返回值
B、指向函数的入口地址
C、表示函数的类型
D、表示函数返回值的类型
44、若有语句:
inta=4,*p=&
a;
下面均代表地址的一组选项是c。
A、a,p,&
*aB、*&
a,*p
C、&
a,p,&
*pD、*&
p,*p,&
a
45、已知:
unsignedintx=65535;
则执行以下语句后的x值为a。
printf("
x);
A、65535B、1C、无确定值D、-1
46、求字符串长度的函数是d。
A、strcatB、strcpyC、strcmpD、strlen
45.下述对C语言字符数组的描述中错误的是b。
A、字符数组可以存放字符串。
B、字符数组的字符可以整体输入、输出。
C、可以在赋值语句中通过赋值运算符"
="
对字符数组整体赋值。
D、可以用关系运算符对字符数组中的字符进行比较。
46、以下关于do-while循环的不正确描述是b。
A、do-while的循环体至少执行一次
B、do-while循环由do开始,用while结束,在while(表达式);
后面不能写分号
C、在do-while循环体中,一定要有能使while后面表达式的值变为零("
假"
)的操作
D、do-while的循环体可以是复合语句
47、以下选项中,与k=n++完全等价的表达式是a。
A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1
二、填空题(每空1分,共10分)
1、字符型数据存储时占用8位,它实际存储的是字符对应的ASCII码。
2、判断闰年的条件是:
能被4整除但不能被100整除,或能被400整除,程序中逻辑表达式可以写成if((year%4==0&
year&
100!
=0)||year%400==0).
3、一个C语言程序中必须存在的函数是主函数。
4、若a是int型变量,则表达式((a=4*5,a*2),a+6)的值为26。
5、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是实参传递给形参。
6、在一个字符数组中,表示一个字符串结束的转义符为'
\0'
。
7、在函数内部定义的变量统称为局部变量。
8、在函数外部定义的变量统称为全局变量。
9、若有定义:
intx=3,y=2;
floata=2.5,b=3.5;
则表达式(x+y)%2+(int)a/(int)b的值为1。
10、循环语句:
for(k=1;
k<
=5;
k++)执行结束后,K的值为6。
11、a为一个整型变量,pa为指向变量a的指针,则*&
a的含义是变量a,&
*pa的含义是变量a的地址。
12、程序的执行总是从主函数开始,主函数执行完时,则程序执行结束。
13、控制台标准输入设备一般是指键盘。
14、do-while语句的循环体至少执行一次。
15、循环体中continue语句的作用是结束本次循环的执行。
16、执行strcmp("
This"
"
that"
)的结果是一个负整数。
17、C源程序的基本单位是函数。
18、若有定义:
charc=10;
则变量C中包含的字符个数为一个。
19、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为9。
20、执行下面的程序片段后,x的值是12。
i=10;
i++;
x=++i;
21、设a、b、c均是int型变量,则执行以下for循环后,c的值为10。
for(a=1,b=5;
a<
=b;
a++)c=a+b;
22、若有定义:
inta[3][2]={2,4,6,8,10,12};
则*(a[1]+1)的值是8。
23、若a=1,b=2则表达式a>
b?
a:
b+1的值是3。
24、当a=5,b=4,c=2时,表达式样a>
b!
=c的值是1。
25、若a=2,b=4,则表达式!
(x=a)||(y=b)&
0的值是0。
26、若有定义:
inta[]={2,4,6,8,10,12},*p=a;
则*(p+1)的值是4,*(a+5)的值是12。
27、若有以下定义和语句:
inta[5]={1,3,5,7,9},*p;
p=&
a[2];
则++(*p)的值是6。
程序运行结果题(每题4分,共20分)
1、(4分)
当运行以下程序时,从键盘键入right?
则下面程序的运行结果是?
(sjhiu)。
#include<
stdio.h>
charc;
while((c=getchar())!
=?
)putchar(++c);
2、(4分)
如果运行以下程序段输入字符为“t”,则程序段的运行结果是?
(T)。
charc1;
scanf("
%c"
c1);
c1=(c1>
=A&
c1<
=Z)?
(c1+32):
c1;
=a&
=z)?
(c1-32):
c1);
3、(4分)
以下程序的运行结果是?
(9)。
#defineA4
#defineB(x)A*x/2
floatc,a=4.5;
c=B(a);
%5.1f
"
c);
4、假定本程序执行时输入:
1357↙(↙代表回车换行符)结果是?
113468
main()
{charc;
while((c=getchar())!
='
\n'
)
switch(c)
{case'
0'
:
case'
1'
putchar(c);
2'
break;
3'
default:
putchar(c+1);
}113468
\n"
);
5、以下程序的运行结果是?
L=18.849556S=28.274333(%f隐含输出六位小数)
#defineR3.0
#definePI3.1415926
#defineL2*PI*R
#defineSPI*R*R
{printf(“L=%f\nS=%f\n”,L,S);
6.以下程序的运行结果是?
输出:
s=20
Main()
{inti,s=0;
inta[8]={1,2,3,4,5,6,7,8};
for(i=0;
i<
=7;
i++)
if(a[i]%2==0)s=s+a[i];
printf(“s=%d”,s);
}s=20
7.以下程序的运行结果是?
输出结果是:
LANGUAGEA
{chara[]="
language"
;
inti;
while(a[i])
{printf("
a[i]-32);
i++;
8以下程序运行后的输出结果是?
10,0。
main()
{intx=10,y=20,t=0;
if(x==y){t=x;
x=y;
}y=t;
printf(“%d,%d\n”,x,y);
9、有以下程序:
main()
{charc;
while((c=getchar())!
=’?
’)putchar(--c);
程序运行时,如果从键盘输入:
Z?
N?
<
回车>
,则输出结果为?
Y。
10、以下程序运行后的输出结果是?
3,4,4,3。
voidfun(intx,inty)
{x=x+y;
y=x-y;
x=x-y;
printf(“%d,%d,”,x,y);
}
{intx=4,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
11、下面程序的运行结果是?
:
5,7。
voidswap(int*a,int*b)
{int*t;
t=a;
a=b;
b=t;
{intx=7,y=5,*p=&
x,*q=&
y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
12、下面程序的运行结果是?
100。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[5];
}STU;
{STUa[5];
printf(“%d\n”,sizeof(a));
13有以下程序,程序运行后的输出结果是?
c,C,B,c
voidfun(char*c,intd)
{*c=*c+1;
d=d+1;
printf(“%c,%c,”,*c,d);
{chara=’B’,b=’b’;
fun(&
b,a);
printf(“%c,%c\n”,a,b);
14有以下程序,运行后的输出结果是?
6
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
{inti,j=0;
for(i=1;
4;
i++)j+=f(i);
printf(“%d\n”,j);
15有以下程序,运行后的输出结果是?
8,7
16以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
voidreverse(inta[],intn)
{inti,t;
n/2;
i++)
{t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
{intb[10]={1,2,3,4,5,6,7,8,9,11};
inti,s=0;
reverse(b,8);
for(i=6;
10;
i++)s+=b[i];
printf(“%d\n”,s);
程序运行后的输出结果是?
23
17有以下程序,程序运行后的输出结果是?
20
{intaa[4][4]={{1,2,3,4},{5,7,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0;
i++)s+=aa[i][1];
printf(“%d\n”,s);
18有以下程序,程序运行后的输出结果是?
7
string.h>
{char*p=“abcdefg\0hjik\0”;
printf(“%d\n”,strlen(p));
19程序中头文件typel.h的内容是:
#defineN5
#defineM1N*3
19\程序如下:
#include“type1.h”
#defineM2N*2
{inti;
i=M1+M2;
printf(“%d\n”,i);
程序编译后运行的输出结果是?
25
20有以下程序,程序运行后的输出结果是?
3020
{FILE*fp;
inti=30,j=20,k,n;
fp=fopen("
d1.dat"
w"
fprintf(fp,"
%d\n"
i);
j);
fclose(fp);
"
r"
fscanf(fp,"
%d%d"
k,&
n);
printf("
%d%d\n"
k,n);
21有以下程序,程序运行后的输出结果是?
8
inta=3;
{ints=0;
{inta=5;
s+=a++;
s+=a++;
s);
22有以下程序,程序运行后的输出结果是?
abcDDfefDbD
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-'
a'
+'
A'
s++;
{charstr1[100]="
abcddfefdbd"
c='
d'
ss(str1,c);
%s\n"
str1);
23有以下程序:
275.00
structstu
{charnum[10];
flo