C复习1Word文档下载推荐.docx
《C复习1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C复习1Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
A.整型变量表达式值
B.实型变量值
C.字符串
D.序符或字符型变量值
10.程序段:
intx=12;
doubley=3.141593;
printf(“%d%8.6f”,x,y);
的输出结果是
A.123.141593
B.123.141593
C.12,3.141593
D.123.141593
11.已有定义语句:
intx=3,y=4,z=5;
则值为0的表达式是
A.x>
y++
B.x<
=++y
C.x!
=y+z>
y-z
D.y%z>
=y-z
12.请阅读以下程序:
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("
***\n"
);
elseprintf("
$$$\n"
}
以上程序
A.有语法错不能通过编译
B.可以通过编译但不能通过连接
C.输出***
D.输出$$$
13.有以下程序
#include<
stdio.h>
{inti=5;
do
{if(i%3=1)
if(i%5==2)
{printf("
*%d"
i);
break;
i++;
}while(i!
=0);
printf("
\n"
程序的运行结果是()。
A.*7
B.*3*5
C.*5
D.*2*6
14.以下程序段的变量已正确定义
for(i=0;
i<
4;
i++,i++)
for(k=1;
k<
3;
k++);
printf("
*"
程序段的输出结果是()
A.********
B.****
C.**
D.*
15.以下选项对m数组,引用错误的是
intm[]={5,4,3,2,1},i=4;
A.m[--i]
B.m[2*2]
C.m[m[0]]
D.m[m[i]]
16.有下列程序:
#include<
string.h>
voidf(charp[][10],intn)/*字符串从小到大排序*/
{chart[10];
inti,j;
for(i=0;
n-1;
i++)
for(j=i+1;
j<
n;
j++)
if(strcmp(p[i],p[j])>
0){strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
main()
{charp[5][10]={"
abc"
"
aabdfg"
abbd"
dcdbe"
cd"
};
f(p,5);
%d\n"
strlen(p[0]));
程序运行后的输出结果是()。
A.2
B.4
C.6
D.3
17.以下正确的说法是()。
A.用户若需要调用标准库函数,调用前必须重新定义
B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义
C.系统不允许用户重新定义标准库函数
D.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用
18.以下函数定义的类型符是()
fff(doublex){printf("
%lf"
x*x);
A.与参数x的类型相同
B.void类型
C.int类型
D.无法确定
19.以下func函数的调用中实参的个数是()
func((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.5
20.以下叙述中错误的是()
A.用户定义的函数中可以没有rcturn语句
B.用户定义的函数中可以有多个rcturn语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有rcturn语句,则应当定义函数为void类型
D.函数的return语句中可以没有表达式
21.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是( )
A.main(){……x=fun(2,10);
……}{……x=fun(2,10);
……}
B.floatfun(inta,intb){……}main(){……x=fun(i,j);
C.floatfun(int,int);
main(){……x=fun(2,10);
……}floatfun(inta,intb){……}
D.main(){floatfun(inti,intj);
……x=fun(i,j);
22.以下叙述不正确的是()
A.在不同的函数中可以使用同名的变量
B.函数中的形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内复合语句中定义的变量也可在本函数范围内有效
23.若有以下定义,则对a数组元素的正确引用是()。
inta[5],*p=a;
A.*&
a[5]
B.a+2
C.*(p+5)
D.*(a+2)
24.以下程序的输出结果是()。
voidprt(int*x,int*y,int*z)
{printf("
%d,%d,%d\n"
++*x,++*y,*(z++));
{inta=10,b=40,c=20;
prt(&
a,&
b,&
c);
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,21
D.11,41,2112,42,22
25.下面能正确进行字符串赋值操作的是()。
A.chars[5]={"
ABCDE"
B.chars[5]={'
A'
'
B'
C'
D'
E'
C.char*s;
s="
;
D.char*s;
scanf("
%s"
s);
26.下面程序段的运行结果是()。
charstr[]="
ABC"
*p=str;
printf("
*(p+3));
A.67
B.0
C.字符'
的地址
D.字符'
27.以下对结构体类型变量td的定义中,错误的是()
A.typedefstruct{intn;
floatm;
}AA;
AAtd;
B.structaa{intn;
}td;
C.struct{intn;
}aa;
structaatd;
D.struct{intn;
}td;
28.有以下程序
#include<
structSTU
{charname[10];
intnum;
};
voidf(char*name,intnum)
{structSTUs[2]={{"
SunDan"
20044},{"
Penghua"
20045}};
num=s[0].num;
strcpy(name,s[0].name);
main()
YangSan"
20041},{"
LiSiGuo"
20042}},
*p;
p=&
s[1];
f(p->
name,p->
num);
%s%d\n"
p->
程序运行后的输出结果是()
A.SunDan20042
B.SunDan20044
C.LiSiGuo20042
D.YangSan20041
29.有以下程序
main()
{union{unsignedintn;
unsignedcharc;
}u1;
ul.c='
printf("
%c\n"
u1.n);
}
执行后输出结果是()。
A.产生语法错
B.随机值
C.A
D.65
30.有以下程序
31.若运行时给变量x输入12,则以下程序的运行结果是
{intx,y;
scanf("
%d"
&
x);
y=x>
12?
x+10:
x-12;
y);
A.0
B.22
C.12
D.10
32.下列能正确定义字符串的语句是()。
A.charstr[]={'
\064'
B.charstr="
kx43"
C.charstr="
D.charstr[]="
\0"
33.若有定义语句:
chars[10]="
1234567\0\0"
,则strlen(s)的值是()。
A.7
B.8
C.9
34.C语言程序由函数组成,它的()。
A.主函数必须在其它函数之前,函数内可以嵌套定义函数
B.主函数可以在其它函数之后,函数内不可以嵌套定义函数
C.主函数必须在其它函数之前,函数内不可以嵌套定义函数
D.主函数必须在其它函数之后,函数内可以嵌套定义函数
35.关于全局变量,下列说法正确的是()。
A.任何全局变量都可以被应用系统中任何程序文件中的任何函数访问。
B.任何全局变量都只能被定义它的程序文件中的函数访问。
C.任何全局变量都只能被定义它的函数中的语句访问。
D.全局变量可用于函数之部传递数据。
36.以下叙述中正确的是()
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
37.有如下程序段:
int*p,a=10,b=1;
p=&
a;
a=*p+b;
执行该程序段后,a的值为()。
A.12
B.11
C.10
D.编译出错
38.执行以下程序后,a,b的值分别为()。
{inta,b,k=4,m=6,*p1=&
k,*p2=&
m;
a=p1==&
b=(*p1)/(*p2)+7;
%d,"
a);
b);
A.-1,5
B.1,6
C.0,7
D.4,10
39.设有如下说明
typedefstruct
{intn;
charc;
doublex;
}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是()。
A.STDtt[2]={{1,‘A’,62},{2,‘B’,75}};
B.STDtt[2]={1,"
A"
62},2,"
B"
75};
C.structtt[2]={{1,‘A’},{2,‘B’}};
D.structtt[2]={{1,"
62.5},{2,"
75.0}};
40.执行以下程序后的结果是()
enumweekday{sun,mon=3,tue,wed,thu};
enumweekdayworkday;
workday=wed;
workday);
A.4
B.3
二、填空题。
(共17题,每题2分)
1.以下程序段的输出结果是__
main()
{
inta=2,b=3,c=4;
a*=16+(b++)-(++c);
回答:
参考答案:
28
2.下列程序运行时若从键盘输入:
102030<
CR>
。
输出结果是_____
{inti=0,j=0,k=0;
%d%d%d"
i,&
j,&
k);
%d%d%d\n"
i,j,k);
102030
3.程序运行时输入1abcedf2df<
回车>
则输出结果为
chara=0,ch;
while((ch=getchar())!
='
\n'
)
{
if(a%2!
=0&
&
(ch>
='
a'
&
ch<
z'
))
ch=ch-'
+'
a++;
putchar(ch);
1AbCeDf2dF
4.以下程序的运行结果是
for(i=0;
i<
4;
i++,i++)
for(k=1;
k<
3;
k++);
*
5.以下程序的运行结果是
inty=9;
for(;
y>
0;
y--)
if(y%3==0)
--y);
852
6.输入:
65<
,程序能否输出结果
charc1,c2;
%c"
&
c1);
while(c1<
65||c1>
90)scanf("
c2=c1+32;
%c,%c"
c1,c2);
不能
7.以下程序运行后,b的值是
inta=1,b;
for(b=1;
b<
=10;
b++)
if(a>
=8)break;
if(a%2==1)
a+=5;
continue;
a-=3;
8.如果一个函数只能被本文件中其他函数所调用,则称它为____________。
内部函数
9.下面的程序执行完后,n=_______。
intn=1;
{staticintx=5;
inty;
y=n;
func();
func()
{staticintx=4;
inty=10;
x=x+2;
n=n+10;
y=y+n;
21
10.在程序中若用到数学函数sqrt时,必须在本文件中开头写上#include<
_________>
。
math.h
11.函数体中通常有________部分和_________部分。
声明部分(说明部分)、语句部分(执行部分)
12.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空.
#include“math.h”
doublefun(doublex){returm(x*x-2*x+6);
{doublex,y1,y2;
printf(“Enterx:
”);
scanf(“%lf”,&
y1=fun(___________);
y2=fun(___________);
printf(“y1=%lf,y2=%lf\n”,y1,y2);
x+8sin(x)
13.该程序运行的结果是【1】。
#include<
#defineM100
voidfun(intm,int*a,int*n)
{inti,j=0;
for(i=1;
=m;
i++)
if(i%7==0||i%11==0)
a[j++]=i;
*n=j;
voidmain()
{intaa[M],n,k;
fun(10,aa,&
n);
for(k=0;
k++)
if((k+1)%20==0)printf("
%4d"
aa[k]);
7
14.以下程序中函数fun的功能是:
统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。
请填空:
#defineN3
typedefstruct
{intnum;
charnam[10];
charsex;
}SS;
intfun(SSperson[])
{inti,n=0;
N;
i++)
if(___________==’M’)n++;
returnn;
}
main()
{SSW[N]={{1,”AA”,’F’},{2,”BB”,’M’},{3,”CC”,’M’}};
intn;
n=fun(W);
printf(“n=%d\n”,n);
person.sex
15.设有说明
structDATE{intyear;
intmonth;
intday;
请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day依次赋初值2006、10、1:
____________
structDATEd={2006,10,1}
16.我们可以用_________来命名新的类型名去代替已有的类型名。
typedef
17.枚举元素作为常量,它们是_______的。
(有值\无值)
有值
三、程序编写题。
(共有2题,每题8分)
1.返回n个学生中低于平均分的人数,并将低于平均分的分数放在b所指的数组中。
intfun(intsco[],intn,intb[]){inti,j=0;
doubles=0;
n;
i++)s+=sco[i];
s=s/n;
i++)if(sco[i]<
s)b[j++]=sco[i];
returnj;
2.求200~300间的全部素数,程序部分给出,请补充两段注释间程序段。
math.h>
voidmain()
{intm,k,i,n=0;
for(m=201;
m<
=300;
m=m+2)
{k=sqrt(m);
/*补充程序段开始*/
/*补充程序段结束*/
if(n%10==0)printf("
for(i=2;
=k;
i++)if(m%i==0)break;
if(i>
=k+1){printf("
%d"
m);
n=n+1;