C语言复习题.docx
- 文档编号:10942669
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:17
- 大小:36.32KB
C语言复习题.docx
《C语言复习题.docx》由会员分享,可在线阅读,更多相关《C语言复习题.docx(17页珍藏版)》请在冰豆网上搜索。
C语言复习题
C语言复习题
1.C语言程序由若干个()构成。
A.过程B.函数C.子程序D.标识符
2.若k是int型变量,且有下面的程序片段:
k=-3;
if(k<=0)printf("####");
elseprintf("&&&&");
上面程序段的输出结果是()。
A.####B.&&&&
C.####&&&&D.有语法错误
3.下面标识符中,不合法的用户标识符为()。
A.PadB.a_10C.CHARD.a#b
4.在C语言程序中,main()的位置()。
A.必须作为第一个函数B.必须作为最后一个函数
C.可以任意位置D.必须放在它所调用的函数之后
5.对于数学表达式
,下面正确的C语言表达式是()。
A.sqrt(x)/(2*a)B.sqrt(x)/2*aC.sqr(x)/2aD.sqr(x)/(2*a)
6.在C语言中,变量的隐含存储类别是()。
A.autoB.staticC.externD.无存储类别
7.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是。
若要求将a的高4位取反,低4位不变,所要执行的运算是()。
A.a^bB.a|bC.a&bD.a<<4
8.以下选项中不属于字符常量的是()。
A.′C′;B.′\072′;C.′\xCC′;D."C";
9.以下能正确定义一维数组的选项是()。
A.inta[5]={0,1,2,3,4,5};B.inta[5]="0123";
C.chara[]={′0′,′1′,′2′,′3′,′\0′};D.chara={′A′,′B′,′C′};
10.在C语言中,()既不是保留字,也不是合法的标识符。
A.x*yB.forC.longD.x2
11.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y==5;B.x=n%;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=;
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<>
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;
printf("%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;free(q);D.p->next=q->next;free(q);
24.有以下结构体说明和变量的定义,且定义有题图1所示指针变量p指向变量a,指针变量q指向变量b。
则不能把结点b连接到结点a之后的语句是()。
A.(*p).next=q;B.=&b;
C.p->next=&b;D.=q;
25.若要打开D盘上user文件夹下名为的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A.fopen(“D:
\user\”,”r”);B.fopen(“D:
\\user\\”,”r+”);
C.fopen(“D:
\user\”,”rb”);D.fopen(“D:
\\user\\”,”w”);
26.设有以下程序段
struct
{intnum;
charname[20];
floatscore;
}student,*p;
p=&student;
若要引入结构体变量的num成员,写法错误的是()。
A.p->numB.C.student->numD.(*p).num
27.在VC++编程环境中,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.将数据存储到变量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;=0x4342;
语句printf("\n%d,%d",[0],[1]);的输出结果为。
40.下面程序的输出结果是____________________。
main()
{charb[]="Hello,you";
b[5]=’\0’;
printf("%s\n",b);
}
41.设有定义
struct person
{ int ID;char name[12];
}p;
请将scanf("%d",);语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。
42.定义以下结构体数组
struct
{intnum;
charname[10];
}x[3]={{1,"China"},{2,"USA"},{3,"England"}};
语句printf("\n%d:
%s",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<2;j++)
printf(“*”);
45.以下程序段的输出结果为。
char*p,*q,*r;
p=q=r=(char*)malloc(50*sizeof(char));
strcpy(p,"attaboy,welcome");
printf("%c%c%c",*(p+2),*(q+5),*(r+12));
46.下面程序的输出结果是___________________。
#defineM(x,y,z)x*y+z
main()
{inta=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));
}
47.下面程序的输出结果是___________________。
main()
{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;j<=i;j++)
sum=sum+a[i][j];
printf("sum=%d\n",sum);
}
48.下面程序的输出结果是____________________。
#include<>
intf(intn)
{if(n==1)return1;
elseif(n==2)return2;
elsereturnf(n-1)+f(n-2);
}
voidmain()
{printf("%d\n",f(4));
}
49.下面程序的输出结果是____________________。
#include<>
voidmain()
{inta=0,i;
for(i=1;i<4;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;break;
default:
a+=5;}
}printf("%d\n",a);
}
50.下面程序的输出结果是____________________。
#include<>
structty
{intdata;charc;};
voidfun(structtyb)
{=20;='y';
}
voidmain()
{structtya={10,'x'};
fun(a);
printf("%d,%c",,;
}
51.下面程序的输出结果是。
voidfun(int*x,int*y)
{*x=3;*y=4;
}
main()
{intx=1,y=2;
fun(&y,&x);
printf("%d,%d",x,y);
}
52.以下程序的输出结果是。
#include<>
#include<>
main()
{char*p,*q,*r;
p=q=r=(char*)malloc(20*sizeof(int));
strcpy(p,"attaboy,welcome");
printf("%c%c%c",p[2],q[5],r[12]);
free(p);
getch();
}
53.下面程序的输出结果是___________________。
main()
{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;j<=i;j++)
sum=sum+a[i][j];
printf("sum=%d\n",sum);
}
54.下面程序的输出结果是____________________。
#include<>
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);
printf("%d,%d\n",sum,diff);
}
55.下面程序的功能是:
计算a数组中奇数的个数与奇数的平均值,请填空完成程序。
#include
voidmain()
{inta[10]={3,2,8,7,5,6,9,10,1,4},i,k=0,s=0;
floatave;
for(i=0;i<10;i++)
if()
{s+=a[i];k++;
}
if(k!
=0)
{ave=;
printf("%d,%f\n",k,ave);
}
}
56.下面程序的功能是打印出整数1-1000中满足条件:
“个位数字的立方等于其本身”的所有数,请填空完成程序。
#include<>
voidmain()
{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()
printf("%4d",x);
}
}
58.下面程序的功能是输入一年份year,判断并输出是否闰年。
闰年的条件是符合下面二者之一:
(1)能被4整除,但不能被100整除。
(2)能被400整除。
请填空完成程序。
voidmain()
{intyear,leap;
scanf("%d",);
if()下面的程序是使用冒泡法对输入的10个浮点数从小到大进行排序,请填空完成程序。
#include<>
main()
{floata[10],x;
inti,j;
printf(“input10numbersplease\n”);
for(i=0;i<10;i++)
scanf("%f",&a[i]);
printf(“\n”);
for(i=1;;i++)
for(j=0;;j++)
if()
{x=a[j];a[j]=a[j+1];a[j+1]=x;
}
for(i=0;i<10;i++)
printf("%",a[i]);
}
60.下面程序的功能是将字符串str的内容颠倒重放并输出,请填空完成程序。
voidreverse(char*p,intn)
{char*q,t;
for(q=p+n-1;p {t=*p; *p=*q; *q=t; } } #include<> #include<> voidmain() {charstr[]={"abcdefg"};intn; n=strlen(str); reverse(_________); puts(str); } 61.下面程序的功能是输入10名评委为参赛选手的打分,去掉一个最高分,一个最低分,计算选手平均得分。 请填空完成程序。 #include<> voidmain() {floatmax,min,mark,aver,sum=0; inti=1; printf("Entermark: ");scanf("%d",&mark); max=min=mark; for(i=2;i<=10;i++) {scanf("%d",&mark); sum=sum+mark; if() max=mark; elseif() min=mark; } aver=; printf("aver=%.2f\n",aver); } 62.下列程序的功能是: 判断字符串是否“回文”(即字符串正读和倒读都是一样),若是则输出YES,否则输出NO。 #include<> #include<> main() {chars[80],*p,*q; inti,j,n; gets(s); p=s;n=strlen(s); q=; while(&&*p==*q) {p++; ; } if(p elseprintf("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)编写求两个整数的最大公约数函数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题