C语言复习题Word文档格式.docx
《C语言复习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言复习题Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
B.x=n%2.5;
C.x+n=i;
D.x=5=4+1;
12.在一个源文件中定义的全局变量的作用域为()。
A.本文件的全部范围B.本程序的全部范围
C.从定义该变量开始至本文件结束D.本函数的全部范围
13.下面程序段的输出结果是()。
charp1[20]="
abcd"
*p2="
ABCD"
str[20]="
xyz"
strcpy(str+2,strcat(p1+2,p2+1));
printf("
%s"
str);
A.xyabcABB.xycdBCD
C.ABabczD.abcABz
14.设有以下语句
typedefstructTT
{charc;
inta[4];
}CIN;
则下面叙述中正确的是()。
A.可以用CIN定义结构体变量 B.TT是struct类型的变量
C.可以用TT定义结构体变量 D.CIN是structTT类型的变量
15.设有以下定义
inta=0;
doubleb=1.25;
charc=’A’;
#defined2
则下面语句中错误的是()。
A.a++;
B.b++C.c++;
D.d++;
16.用十进制数表示表达式12|012的运算结果是()。
A.1B.0C.14D.12
17.设s1,s2是两个字符数组名,判断s1和s2中的字符串是否相等,应当使用()。
A.if(s1==s2)B.if(strcmp(s1,s2)==0)
C.if(s1=s2)D.if(strcmp(s1,s2)=0)
18.执行下面程序中输出语句后,x的值是()。
#include<
stdio.h>
main()
{intx;
printf("
%d\n"
(x=4,x++,x*4,x*=4));
}
A.80B.16C.20D.5
19.设有定义:
int
k=0;
以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A.k++
B.k+=1
C.++k
D.k+1
20.下列程序的输出结果是()。
main()
{inta[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
%d"
*++p);
}
A.非法B.9C.3D.7
21.下面函数的功能是()。
intsss(char*s,char*t)
{while((*s)&
(*t)&
(*t++==*s++));
return(*s-*t);
}
A.求字符串的长度B.比较两个字符串的大小
C.将字符串s复制到字符串t中D.将字符串s接续到字符串t中
22.在C语言的程序中,下列叙述错误的是()。
A.形参是局部变量
B.不同的函数中,可以使用相同名称的变量
C.在一个函数的内部,可以在复合语句中定义变量
D.main()函数中定义的变量在整个文件或程序中都有效
23.假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
则可将q所指结点从链表中删除并释放该结点的语句组是()。
A.(*p).next=(*q).next;
free(p);
B.p=q->
next;
free(q);
C.p=q;
D.p->
next=q->
24.有以下结构体说明和变量的定义,且定义有题图1所示指针变量p指向变量a,指针变量q指向变量b。
则不能把结点b连接到结点a之后的语句是()。
题图1
A.(*p).next=q;
B.p.next=&
b;
C.p->
next=&
D.a.next=q;
25.若要打开D盘上user文件夹下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A.fopen(“D:
\user\abc.txt”,”r”);
B.fopen(“D:
\\user\\abc.txt”,”r+”);
C.fopen(“D:
\user\abc.txt”,”rb”);
D.fopen(“D:
\\user\\abc.txt”,”w”);
26.设有以下程序段
struct
{intnum;
charname[20];
floatscore;
}student,*p;
p=&
student;
若要引入结构体变量的num成员,写法错误的是()。
A.p->
numB.student.numC.student->
numD.(*p).num
27.在VC++6.0编程环境中,C语言源程序文件名的后缀是。
28.表达式“1≤a≤10”在C语言中应表示为。
29.设a,b,c是整型变量,若a=10,b=20,则执行c=a++&
b++;
语句,变量b的值为__________。
30.若有定义inta=2,c;
c=a<
2;
变量c的值为。
31.C语言程序在计算机上运行,需要经过编辑、编译、连接和四个步骤。
32.将数据3.12345存储到变量x中,则x定义语句为。
33.若x=0,y=1,z=2,表达式z+=(x++&
y++?
x:
y)的值是。
34.设有说明语句:
inta[3][4]={{1,2},{3,4,5},{6,7,8}};
则a[2][2]的初始化值为_____________。
35.设有以下宏定义:
#definef(z)z*z,执行赋值语句k=f(4+4)/f(2+2);
(k为int型变量)后,k的值是。
36.若n=10;
则语句while(n>
11);
{n++;
}的循环次数是。
37.若x为int型变量,则执行下列语句后x的值为。
x=6;
x+=x-=x*x;
38.若有定义chars[l0]=“remind”;
。
则执行puts(s+2);
后的输出结果是。
39.设已有定义
union
{charc[2];
intx;
}s;
s.x=0x4342;
语句printf("
\n%d,%d"
s.c[0],s.c[1]);
的输出结果为。
40.下面程序的输出结果是____________________。
main()
{charb[]="
Hello,you"
b[5]=’\0’;
%s\n"
b);
41.设有定义
struct person
{ int ID;
char name[12];
}p;
请将scanf("
);
语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。
42.定义以下结构体数组
struct
{intnum;
charname[10];
}x[3]={{1,"
China"
},{2,"
USA"
},{3,"
England"
}};
\n%d:
x[0].num,x[0].name)的输出结果为__。
43.下面程序段的运行结果是__________。
chara[]="
lanuage"
*p=a;
while(*p!
=′u′){printf("
%c"
*p-32);
p++;
44.以下程序段中内循环体printf(“*”)的执行次数是__________。
for(i=5;
i>
0;
i--)
for(j=0;
j<
j++)
printf(“*”);
45.以下程序段的输出结果为。
char*p,*q,*r;
p=q=r=(char*)malloc(50*sizeof(char));
strcpy(p,"
attaboy,welcome"
%c%c%c"
*(p+2),*(q+5),*(r+12));
46.下面程序的输出结果是___________________。
#defineM(x,y,z)x*y+z
main()
{inta=1,b=2,c=3;
M(a+b,b+c,c+a));
47.下面程序的输出结果是___________________。
{inti,j,a[3][4]={1,2,3,4,2,3,4,5,3,4,5,6},sum=0;
for(i=0;
i<
3;
i++)
for(j=0;
=i;
j++)
sum=sum+a[i][j];
sum=%d\n"
sum);
48.下面程序的输出结果是____________________。
intf(intn)
{if(n==1)return1;
elseif(n==2)return2;
elsereturnf(n-1)+f(n-2);
voidmain()
{printf("
f(4));
49.下面程序的输出结果是____________________。
#include<
voidmain()
{inta=0,i;
for(i=1;
4;
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
break;
default:
a+=5;
}printf("
a);
50.下面程序的输出结果是____________________。
structty
{intdata;
charc;
};
voidfun(structtyb)
{b.data=20;
b.c='
y'
voidmain()
{structtya={10,'
x'
fun(a);
%d,%c"
a.data,a.c);
51.下面程序的输出结果是。
voidfun(int*x,int*y)
{*x=3;
*y=4;
{intx=1,y=2;
fun(&
y,&
x);
%d,%d"
x,y);
52.以下程序的输出结果是。
string.h>
{char*p,*q,*r;
p=q=r=(char*)malloc(20*sizeof(int));
strcpy(p,"
p[2],q[5],r[12]);
getch();
53.下面程序的输出结果是___________________。
54.下面程序的输出结果是____________________。
voidsum_diff(intx,inty,int*ps,int*pd)
{
*ps=x+y;
*pd=x-y;
voidmain()
{inta=4,b=3,sum,diff;
sum_diff(a,b,&
sum,&
diff);
%d,%d\n"
sum,diff);
55.下面程序的功能是:
计算a数组中奇数的个数与奇数的平均值,请填空完成程序。
stdio.h>
{inta[10]={3,2,8,7,5,6,9,10,1,4},i,k=0,s=0;
floatave;
for(i=0;
10;
if()
{s+=a[i];
k++;
if(k!
=0)
{ave=;
%d,%f\n"
,k,ave);
56.下面程序的功能是打印出整数1-1000中满足条件:
“个位数字的立方等于其本身”的所有数,请填空完成程序。
{intn,g;
for(n=1;
n<
1000;
n++)
{g=;
if()
printf(〞%4d〞,n);
printf(〞\n〞);
57.下面程序的功能是打印出100~999中的所有水仙花数。
水仙花数是一个3位数,其各位数字立方和等于该数本身。
如:
153=13+53+33,故153是水仙花数。
请填空完成程序。
#include<
voidmain()
{intx,n1,n2,n3;
for(x=100;
x<
=999;
x++)
{n1=x/100;
n2=;
n3=x%10;
if()
%4d"
x);
58.下面程序的功能是输入一年份year,判断并输出是否闰年。
闰年的条件是符合下面二者之一:
(1)能被4整除,但不能被100整除。
(2)能被400整除。
{intyear,leap;
scanf("
if()//闰年条件
leap=1;
else
leap=0;
if()
%disaleapyear\n"
year);
%disnotaleapyear\n"
59.下面的程序是使用冒泡法对输入的10个浮点数从小到大进行排序,请填空完成程序。
stdio.n>
{floata[10],x;
inti,j;
printf(“input10numbersplease\n”);
for(i=0;
10;
i++)
scanf("
%f"
&
a[i]);
printf(“\n”);
for(i=1;
;
;
if()
{x=a[j];
a[j]=a[j+1];
a[j+1]=x;
%6.2f"
a[i]);
60.下面程序的功能是将字符串str的内容颠倒重放并输出,请填空完成程序。
voidreverse(char*p,intn)
{char*q,t;
for(q=p+n-1;
p<
q;
_________)
{t=*p;
*p=*q;
*q=t;
{charstr[]={"
abcdefg"
intn;
n=strlen(str);
reverse(_________);
puts(str);
61.下面程序的功能是输入10名评委为参赛选手的打分,去掉一个最高分,一个最低分,计算选手平均得分。
#include<
{floatmax,min,mark,aver,sum=0;
inti=1;
Entermark:
"
mark);
max=min=mark;
for(i=2;
=10;
{scanf("
sum=sum+mark;
max=mark;
elseif()
min=mark;
}
aver=;
aver=%.2f\n"
aver);
62.下列程序的功能是:
判断字符串是否“回文”(即字符串正读和倒读都是一样),若是则输出YES,否则输出NO。
{chars[80],*p,*q;
inti,j,n;
gets(s);
p=s;
n=strlen(s);
q=;
while(&
*p==*q)
{p++;
if(p<
q)printf("
NO\n"
YES\n"
63.编程:
输入用户的月用水量x(吨),计算并输出该用户应支付的水费y(元)(保留两位小数)。
64.编程:
输入一百分制成绩,计算并输出等级。
90-100为A等级,80-89为B等级,70-79为C等级,60-69为D等级,60分以下者为E等级。
65.编程:
计算并输出100~500之间的所有素数(每行输出10个素数)及素数的个数。
66.编程输入信息工程学院某班N名学生高等数学课程的考试成绩,然后将所有学生的考试成绩按降序(从大到小)排序并输出,最后输出该课程考试成绩的最高分与最低分。
67.编程从键盘输入一个3×
4的矩阵,求其最大元素的值,以及其所在的行号和列号,并显示该矩阵。
68.编写函数,判断一个5位数是否满足以下条件:
它的中间一位数能被6整除,截取它的前2位数和后2位数,这两个数也能被6整除,例如:
12000、54624。
要求在主函数中调用该函数,将区间[10000,40000]之间满足条件的数据及数据的个数输出到文件“C:
\”中,每行输出5个数据。
69.输入一个字符串,分别统计并输出其中数字字符、字母字符及其它字符的个数,计算并输出数字字符、字母字符出现的频率(频率的计算方法为频数除以总数,如数字字符的频率等于数字字符的个数除以字符串中字符总数)。
70.编写自定义函数:
(1)判断素数的函数prime(intn)、判断偶数even(intn)的函数。
(2)编写排序函数(冒泡排序、选择排序)。
(3)编写查找函数(顺序查找、折半查找)
(4)编写插入函数(在一组有序数列中插入一个整数,插入后仍然有序)。
(5)编写求整数的阶乘函数。
(6)编写求两个整数的最大公约数函数。