C复习资料Word格式.docx
- 文档编号:18872551
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:15
- 大小:28.01KB
C复习资料Word格式.docx
《C复习资料Word格式.docx》由会员分享,可在线阅读,更多相关《C复习资料Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
switch(k)
{default:
c+=k;
case2:
c++;
break;
case4:
c+=2;
printf(“%d\n”,c);
程序运行后的输出结果是3。
7.已知如下定义(设long型变量占4个字节,float型占4个字节,char型占1个字节)
unionstudent
{longnum;
charname[20];
floatscore[4];
};
unionstudentstu;
则变量stu所分配的存储空间是字节。
A.4B.16C.20D.32
8.设有以下语句
charch1,ch2,scanf(”%c%c”,&
ch1,&
ch2);
若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是AB。
9.有以下函数
voidf(charc)
{if(c>
'
x'
)f(c-1);
printf("
%c"
c);
{f('
z'
);
程序运行输出结果是XYZ。
11.有以下程序
#include<
string.h>
{chara[5][10]={"
china"
"
beijing"
you"
tiananmen"
welcome"
inti,j;
chart[10];
for(i=0;
i<
4;
i++)
for(j=i+1;
j<
5;
j++)
if(strcmp(a[i],a[j])>
0)
{strcpy(t,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],t);
puts(a[2]);
程序运行后的输出结果是tiananmen。
12.有以下程序
intf(intm)
{staticintn=1;
n+=m;
returnn;
{intn=2;
printf("
%d,"
f(++n));
f(n++));
程序运行后的输出结果是4,7。
13.在程序中可以用来作为变量名的合法的标识符是。
A.staticB.23_b1C.stu_1tD.#33
14.有以下程序
voidfun(char*w,intm)
{chars,*p1,*p2;
p1=w;
p2=w+m-1;
while(p1<
p2){s=*p1;
*p1=*p2;
*p2=s;
p1++;
p2--;
{chara[]="
abcdefghi"
;
fun(a,strlen(a));
puts(a);
程序运行后的输出结果是ihgfedcba。
15.有以下程序
main()
{inta[3][3],*p,i;
p=&
a[0][0];
for(i=0;
i<
9;
i++)p[i]=i+2;
a[0][2]);
程序运行后的输出结果是4。
16.有以下程序
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&
a[3],*q=p+2;
printf("
*p+*q);
程序运行后的输出结果是。
A.6B.8C.10D.16
17.有以下程序
intf(intx,inty)
{return((y-x)*x);
{inta=1,b=2,c=3,d;
d=f(f(a,b),f(a,c));
d);
1.对于一个正常运行的C程序,以下叙述中正确的是。
A.程序的执行总是从main函数开始,在main函数结束
B.C语言程序总是从第一个定义的函数开始执行
C.C语言程序中的main()函数必须放在程序的开始部分
D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
18.以下选项中非法的字符常量是。
A.’\102’B.’\65’C.’\xff’D.’\019’
19.假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b)的值是。
A.7B.8C.5D.2
20.以下对一维数组a的正确说明是。
A.intn;
scanf("
n);
inta[n];
B.intn=10,a[n];
C.#defineSIZE10D.inta(10);
inta[SIZE];
21.若有以下定义和语句:
charc1='
b'
c2='
e'
%d,%c\n"
c2-c1,c2-'
a'
+'
A'
则输出结果是。
A.2,MB.3,E
C.2,ED.输出项与对应的格式控制不一致,输出结果不确定
22.对下述程序,是正确的判断。
main()
{intx,y;
scanf(“%d,%d”,&
x,&
y);
if(x>
y)
x=y;
y=x;
else
x++;
y++;
printf(“%d,%d”,x,y);
A.有语法错误,不能通过编译B.若输入3和4,则输出4和5
C.若输入4和3,则输出3和4D.若输入4和3,则输出4和5
23.fun函数的功能是:
通过键盘输入给x所指的整型数组所有元素赋值。
在下列划线处应该填写的是。
#defineN5
voidfun(intx[N])
{intm;
for(m=N-1;
m>
0;
m--)scanf(“%d”,);
A.&
x[++m]B.&
x[m+1]C.x+(m++)D.x+m
24.有以下程序(注:
字符a的ASCIl码值为97)
{char*s={"
abc"
do
{printf("
*s%10);
++s;
while(*s);
程序运行后的输出结果是789。
25.有以下函数
voidfun(int*s)
{staticintj=0;
do{s[j]=s[j]+s[j+1];
}while(++j<
2);
{intk,a[10]={1,2,3,4,5};
for(k=1;
k++)fun(a);
for(k=0;
k++)printf("
a[k]);
\n"
程序运行输出结果是35745。
26.程序中定义以下宏#defineM(x,y)(x*y)
若定义inta;
且令a=M(1+3,5);
则变量a的值为。
A.16B.20C.9
D.以上均不是
27.以下程序运行后的输出结果是abedcfg。
#include<
voidf(char*s,char*t)
{chark;
k=*s;
*s=*t;
*t=k;
}
{charstr[10]="
abcdefg"
*p;
p=str+strlen(str)/2+1;
f(p,p-2);
%s\n"
str);
28.若有定义:
intaa[8];
则以下表达式中不能代表数组元素aa[2]的地址的是。
aa[2]+1B.&
aa[1]C.aa+2D.&
aa[1]++
29.以下程序的输出结果是1。
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
{printf(“%ld\n”,fun(3));
30.在if(x)语句中的x与下面条件表达式等价的是。
A.x==0B.x==1C.x!
=1D.x!
=0
31.以下对C语言函数的有关描述中,正确的是。
A.在调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
32.设有如下程序段
chars[20]=“Bejing”,*p;
p=s;
则执行p=s;
语句后,以下叙述正确的是。
A.可以用*p表示s[0]B.s数组中元素的个数和p所指字符串长度相等
C.s和p都是指针变量D.数组s中的内容和指针变量p中的内容相等
33.已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是。
if(x>
z=x;
y=z;
A.10,20,30B.20,30,30C.20,30,10D.20,30,20
34.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是。
A.num%2==1B.!
(num%2==0)C.!
(num%2)D.num%2
35.若有定义语句:
intyear=2009,*p=&
year;
,以下不能使变量year中的值增至2010的语句是。
A.*p+=1;
B.(*p)++;
C.++(*p);
D.*p++
36.设变量a是整型,f是实型,i是双精度型,则表达式10+'
-i*f值的数据类型为双精度型。
37.执行下列语句中,sum变量的值是15。
intsum=0;
for(inti=0;
i++,sum+=i);
38.以下不正确的说法为。
A.在函数内的复合语句中定义的变量在本函数范围内有效
B.形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在不同函数中可以使用相同名字的变量
39.有以下函数
sthio.h>
{printf(“%d\n”,strlen(”ATS\n012\\”));
}
程序运行后的输出结果是8。
40.有以下函数
{intk,a[10]={1,2,3,4,5};
a[k]);
41.以下错误的定义语句是。
A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
42.凡在函数中未指明存储类别的变量,其隐含的存储类别为auto。
43.若有以下定义及语句:
structs1
{chara[3];
intnum;
}t={‘a’,’b’,’c’},*p;
t;
则输出值为c的语句是。
A.printf(“%c\n”,p->
t.a[2]);
B.printf(“%c\n”,(*p).a[2]);
C.printf(“%c\n”,p->
a[3]);
D.printf(“%c\n”,(*p).t.a[2]);
二、程序填空题
1.设变量a和b已定义为int类型,若要通过scanf(”a=%d,b=%d”,&
a,&
b);
语句分别给a和b输入1和2,则正确的数据输入内容是1,2。
2.若有定义:
inta[]={1,3,5,7,9,11},*p=a;
则*(p+2)的值和*(a+5)的值分别是412。
3.有以下程序段
s=1.0;
for(k=1,k<
=n;
k++)s=s+1.0(k*(k+1));
printf(“%f\n”,s);
请填空,使以下程序段的功能与上面的程序段完全相同。
k=1;
whilek<
=n
{s=s+1.0(k*(k+1));
k=k+1;
4.下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。
hcf(intm,intn)
{intr;
if(m<
n){r=m;
m=n;
n=r;
r=m%n;
while(r!
=0)、
{m=n;
n=r;
r=m%n;
returnn;
5.有一个3*4矩阵,求其中的最大元素。
max_value(intarray[][4])
{inti,j,max;
max=array[0][0];
for(j=0;
if(array[i][j]>
max)max=array[i][j];
returnmax;
}
main()
{inta[3][4],i,j;
for(i=0;
j++)scanf("
a[i][j]);
printf(“maxvalueis%d\n”,max_value(a));
6.下面程序通过指向整型的指针将数组a[3][4]的内容按3行×
4列的格式输出,请给printf()填入适当的参数,使之通过指针p将数组元素按要求输出。
inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*p=a;
{inti,j;
for(i=0;
i++)
{for(j=0;
j++)printf("
%4d"
*(*(p+i)+j));
}}
7.以下程序段的输出结果是4。
inta=47;
a+=a%=9;
printf(“%d\n”,a);
8.下面程序段是从键盘输入的字符中统计数字字符的个数,当输入换行符时结束循环。
请分析程序填空。
intn=0,c;
c=getchar();
while(c!
='
\n'
)
{if
(1)n++;
c=getchar();
9.下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。
{inti,j,k,count=0;
for(i=1;
=9;
for(j=0;
if(i==j)continue;
elsefor(k=0;
k++){if(j!
=k&
&
i!
=k)count++;
count);
10.有以下程序
{chara[20]=”Thisisaprogram!
”,b[20];
scanf(“%s”,b);
printf(“%s%s\n”,a,b);
程序运行时从键盘输入:
Thisisaprogram!
<
则输出结果为Thisisaproblem!
This。
11.设a、b、c都是整型变量,如果a的值为2,b的值为3,则执行c=a++||b++;
语句后,变量b的值是3。
12.下面这个程序的功能是将字符串s中所有的字符b删除。
{chars[80];
inti,j;
Pleaseenterstrings:
"
gets(s);
for(i=j=0;
i<
80;
i++)
{if(s[i]!
=’b’)s[j++]=s[i];
s[j]=’\0’;
puts(s);
13.下面函数的功能是判断一个数是不是素数。
intprime(intm)
{inti;
for(i=2;
=sqrt(m);
i++)
if(a%i==0)return0;
return1;
14.有一个3*4矩阵,求其中的最大元素。
max_value(intarray[][4])
a[i][j]);
三、编程题
1.任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。
2.编程检查用户输入的字符是数字、字母、空白还是其它字符,直到用户输入'
q'
为止。
3.打印出如下图案(菱形)
*
***
******
********
4.输入n值,输出如图所示高和上底均为n的等腰梯形。
当n=5时
5.编写程序,将两个字符串连接起来,不要使用strcat函数。
6.有一分数序列:
,求出这个数列的前20项之和。
voidmain()
{
floatm=1,n=2,sum=0,b,i;
for(i=1;
21;
{
sum=sum+n/m;
b=n+m;
m=n;
n=b;
%2f\n"
sum);
7.写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。
voidcopy(charstr[100]);
chars1[100];
输入一个字符串:
gets(s1);
copy(s1);
voidcopy(charstr[100])
inti,j;
chars[100];
for(i=0,j=0;
str[i]!
\0'
if((str[i]=='
)||(str[i]=='
i'
o'
u'
)
||(str[i]=='
E'
I'
O'
U'
))
{s[j]=str[i];
j++;
s[j]='
puts(s);
8.自键盘读入由小到大的10个整数,然后再读入一个数,要求按原来的规律将它插入数组中。
inta[11],i,j,temp;
按由小到大输入十个数:
10;
scanf("
a[i]);
插入一个新数:
a[10]);
for(j=0;
10-i;
{if(a[j]>
a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("
重新排列的数:
11;
%3d"
a[i]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习资料