C语言复习基础专题.docx
- 文档编号:8006605
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:18
- 大小:25.51KB
C语言复习基础专题.docx
《C语言复习基础专题.docx》由会员分享,可在线阅读,更多相关《C语言复习基础专题.docx(18页珍藏版)》请在冰豆网上搜索。
C语言复习基础专题
“C语言程序设计”期末考试复习
(一)选择题:
1.下列四组选项中,均是不合法的用户标识符的选项是( C )。
A)GS_4intB)double2a0_V
C)!
A3a#bdoD)b-aabcSwep
2.下列四组选项中,属于合法的用户标识符的选项是( D)。
A)forB)-XYZC)5iD)For
3.不合法的C语言整型常量是(B)。
A)0xe2LB)2e3C)18LD)0xe3
4.不合法的C语言实型常量是( A)。
A)-123E-3.0B)-.123C)-1.23E-1D)-0.123
5.设chara;intb;floatc;doubled;则表达式d/b+c*a值的数据类型为(C)。
A)charB)intC)doubleD)float
6.设有说明:
chara;intb;floatc;doubled;则表达式(int)(d)/b+c*a值的数据类型为( D)。
A)charB)intC)floatD)double
7.定义三个变量x、y、z,并分别赋初值为0,能实现该功能的语句是( B )。
A)intx=0;y=0;z=0;B)intx=0,y=0,z=0;C)intx,y,z=0;D)intx=y=z=0;
8.定义三个变量a,b,c,并都初始化为‘a’。
能实现该功能的语句是( B )。
A)chara=‘a’;b=‘a’;c=‘a’;B)chara=‘a’,b=‘a’,c=‘a’;
C)chara,b,c=‘a’;D)chara=b=c=‘a’;
9.设以下变量均为int类型,则值不等于8的表达式是( D )。
A)(y=7,y+1,x=y,x+1)B)(x=7,x+1,y=x++,y+1)
C)(x=y=7,++x,y+1)D)(x=y=7,++x,x+1)
10.下列for循环的循环次数是( D )。
inti=0,j;
for(j=3;i=j=7;i++,j++)printf(”hello”);
A)1次 B)5次C)10次 D)无限次
11.下列for循环的循环次数是( A )。
inti=0,j;
for(j=3;i=j=0;i++,j++)printf(”hello”);
A)0次 B)5次C)1次 D)无限次
12.表达式2<5&&6<9的值是( B )。
A)0B)1C)2D)3
13.下列for循环的循环次数是( C)。
inti,j;
for(i=j=0;!
i||j<=5;j++)i++;
A)1次 B)5次C)6次 D)无限次
14.下列while循环的循环次数是( D )。
inta=1,b=2;
while(a++
A)0次 B)1次C)5次 D)无限次
15.下面程序段的运行结果是( B )。
intn=0;
while(n++<=2);
printf("%d",n);
A)3 B)4C)012 D)123
16.下面程序段的运行结果是( D )。
intn=0;
while(n++<=2)printf("%d",n);
A)3B)4C)012D)123
17.若inta=5;则执行下列语句后打印的结果为( D )。
do{printf(“%2d\n”,++a);}while(a);
A)6 B)5
C)不打印任何结果 D)陷入死循环
18.若inta=5;则执行下列语句后打印的结果为( C )。
while(!
a)
{printf(“%2d\n”,++a);}
A)5 B)9 C)不打印任何结果 D)陷入死循环
19.已知:
inti=5;计算表达式–i++的值是( C )。
A.-3 B.-2 C.-5 D.非法
20.以下程序的输出结果是(C)
main()
{ int a=2,b=1,c=3,d;
printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));
}
A)2 B)1 C)3 D)不确定
21.有一个函数原型为:
test(floatx,inty);则该函数的返回值类型为( D )。
A)void B)doubleC)floatD)int
22. 有以下程序:
#include
main()
{char c;
while((c=getchar())!
='?
') putchar(c++);
}
程序运行时,如果从键盘输入:
Y?
N?
<回车>,则输出结果为(A)。
A)YB)ZC)XD)YN
23.有以下程序:
#include
main()
{char c;
while((c=getchar())!
='\n') putchar(--c);
} 程序运行时,如果从键盘输入:
BC<回车>,则输出结果为( B )。
A)BCB)ABC)BD)C
24.有两个字符数组x、y,则以下正确的输入语句是( B )。
A)scanf("%s%s",&x,&y);B)scanf("%s%s",x,y);
C)gets(x,y);D)gets(&x),gets(&y);
25.有个字符数组a,则以下正确的输入语句是( A ).
A)gets(a);B)scanf("%s","a");C)scanf("%s",&a);D)gets("a");
26.以下函数调用语句中实参的个数是( A )。
fun((v1,v2),(v3,v4,v5),v6);
A)3B)4C)5D)6
27.若有以下定义
inta[]={1,2,3,4,5,6,7};
charc1=’b’,c2=’2’;
则数值为4的表达式是___D___。
A)c2+2B)a[2]+2C)‘F’-c1D)a[‘5’-c2]
28.说明语句如下:
inta[10]={1,2,3,4,5,6,7,8,9},*p=a;则数值为6的表达式是( D )。
A.*p+6 B.*(p+6) C.p+5 D.*p+=5
29.以下程序的输出结果是( C )
main()
{intx[5]={10,20,30,40,50},*p;
p=x;
*p++;
printf(“%d”,*p);
}
A.10 B.11 C.20 D.21
30.定义一个结构体型变量时,分配给它的内存字节数是( C )。
A.结构体型变量的成员中,占用字节数最多的成员占用的字节数
B.结构体型变量的成员中,占用字节数最少的成员占用的字节数
C.结构体型变量的成员中,所有成员占用的字节数总和
D.结构体型变量的成员中,所有成员占用的字节数总和加1
31.根据以下定义,能输出字符‘A’的语句是( A )。
structperson
{charname[9];
intage;
}class[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16};
A)printf(“%c”,class[3].name[0]);B)printf(“%c”,class[2].name[4]);
C)printf(“%c”,class[3].name[3]);D)printf(“%c”,class[3].name[1]);
32.根据以下定义,输出字符不为‘a’的语句是( C )。
structperson
{charname[9];
intage;
}class[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16};
A)printf(“%c”,class[1].name[1]);B)printf(“%c”,class[2].name[1]);
C)printf(“%c”,class[3].name[0]);D)printf(“%c”,class[3].name[2]);
33.下面程序的运行结果是( D )。
main()
{structcmplx
{intx;
inty;
}cnum[2]={1,2,3,4};
printf("%d\n",cnum[1].y/cnum[0].x*cnum[0].y);}
A)1B)4C)6D)8
34.下面程序的运行结果是( D)。
main()
{structcmplx
{inta ;
intb ;
}cnum[3]={1,2,3,4,5,6};
printf("%d\n",cnum[1].a/cnum[0].b*cnum[0].a);
}
A)4B)3C)2D)1
35.若要将“program.txt”文件打开用于追加信息,则以下格式正确的是( B )。
A)fp=fopen(“program.txt”,“r”);B)fp=fopen(“program.txt”,“a+”);
C)fp=fopen(“program.txt”,“r+”);D)fp=fopen(“program.txt”,“w”);
36.要使用fopen函数打开一个新的只写的二进制文件,文件的打开方式应是( B )。
A)“w”B)“wb”C)“w+“D)“wb+”
37.下列关于C语言中对文件的操作的传述中,正确的是( A )。
A.对文件进行操作必须先打开文件 B.对文件进行操作必须先闭文件
C.对文件进行操作时没有顺序的要求D.对文件操作前须先测试文件是否存在
38.要使用fopen函数打开一个新的可读可写的文本文件,文件的打开方式应是( C )。
A)“a+”B)“r+”C)“w+“D)“wb+”
39.若要将“text.txt”文件打开用于追加信息,则以下格式正确的是( B )。
A.fp=fopen(“text.txt”,“r”);B.fp=fopen(“text.txt”,“a+”);
C.fp=fopen(“text.txt”,“r+”);D.fp=fopen(“text.txt”,“w”);
40.若要打开a盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是( B)。
A.fopen(“a:
\user\abc.txt”,“r”)B.fopen(“a:
\user\abc.txt”,“r+”)
C.fopen(“a:
\user\abc.txt”,“rb”)D.fopen(“a:
\user\abc.txt”,“w”)
41.执行函数fopen(“abc.txt”,“w+”)的含义是(C)。
A.以读的方式打开一个文件B.以写的方式打开一个文件
C.创立一个既可读又可写的文件D.创立一个只可写的文件
42.要使用fopen函数打开一个新的只写的二进制文件,文件的打开方式应是(B)。
A)“w”B)“wb”C)“w+“D)“wb+”
(二)填空题:
(1)
将算术表达式写成C表达式为:
_(3*x-2*y)/(x*x-y)______。
(2)表达式(1/2)*3.0的值为:
____0.0____。
(3)
2x+1
x2+4y
将算术表达式写成C表达式为:
___(x*x+4*y)/(2*x+1)__。
(4)若有intx=10,y=20;则运行
printf(“%d,%d”,++x,y++);结果为:
______11,20_______。
(5)若有定义inta[4][5]={{1,0,1,0},{2,1,2,1,0},{5}},则初始化后,a[1][3]的值是__1__,a[3][1+]的值是__0___。
(6)表达式(1/2)*1.5的值为:
____0.0________。
(7)将表达式a≤b≤c写成C表达式为:
_____a<=b&&b<=c_____。
(8)以下程序的功能是判断一个大于1的整数是否为素数,是则输出‘Y’,否则输出‘N’,请填空。
main()
{inti,n;
scanf(“%d”,&n);
for(i=2;i if(n%i==0_)break; if(__i>=n__)printf(“Y”); _else____printf(“N”);} (9)以下程序的运行结果是___3______。 main() {inta[]={1,2,3,4,5}; charc=’a’; printf(“%d”,a[‘c’-c]);} (10)以下程序的功能是输入一个字符串,输出字符串的长度,请填空。 #include main() {charstr[20]; gets(__str_); printf(“%d”,___strlen(str)_____); getch();} (11)以下函数的功能是判断一个大于1的整数是否为素数,是则返回‘Y’,否则返回‘N’,请填空。 __char_sushu(intx) {inti; for(i=2;i if(_x%i=0_)return‘N’; return‘Y’;} (12)若有定义: inta[]={2,4,6,8,10,12},*p=&a[1]; 则*(++p)的值是__6___。 (三)程序阅读题: (写出程序运行结果) 1.下面程序的输出结果是45。 #include main() {intx; x=(x=4*5,x+5,x+25); printf(“x=%d\n”,x) ;} 2.下面程序的输出结果是1,2.40。 #include main() {floaty;intx; x=1.2; y=(x+3.8)/2; printf(“x=%d,y=%.2f\n”,x,y) ;} 3.下面程序输出结果是31。 main() {intx=10,y=20,z=30; if(x if(y<0)z=0; elsez+=1; printf(“%d\n”,z);} 4.下面程序运行结果是x=7。 #include main() {intx=5; if(x++>5)printf(“x=%d\n”,x); elseprintf(“x=%d\n”,++x);} 5.下面程序的输出结果是2。 #include main() {int x=10203,z=0,y; while(x) {y=x%10; if(y==0)z++; x=x/10;} printf("%d",z);} 6.下面程序的运行结果是27。 #include main() {inti,sum; sum=0; for(i=1;i<=9;i++) {if(i%3==0)continue; sum=sum+i;} printf("sum=%d",sum);} 7.下面程序的运行结果是852。 #include main() {inty; for(y=10;y>0;y--) if(y%3==0)printf("%d",--y);} 8.下面程序的运行结果是7,3 #include main() {inta[10]={0,2,-13,21,11,67,-78,8,90,-53}; inti,count1=0,count2=0; for(i=0;i<10;i++) if(a[i]>=0)count1++; elsecount2++; printf(“%d,%d\n”,count1,count2);} 9.下面程序输入123456789, 运行结果是Thesumis15 #include main() {inta[3][3],sum=0; inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(“%d”,&a[i][j]); for(i=0;i<3;i++) sum+=a[i][i]; printf(“Thesumis%d\n”,sum);} 10、下面程序运行结果是2610 #include main() {inta[3][3]={1,2,3,4,5,6,7,8,9},b[3]={0},i,j; for(i=0;i<3;i++) b[i]=a[i][0]+a[0][i]; for(i=0;i<3;i++) printf(“%5d”,b[i]);} 11.下面程序运行时,输入AbCdEf,阅读程序写出输出结果为: abcdef #include #include #defineN100 main() {chars[N];inti; printf(“enteraarray: ”); gets(s); for(i=0;i if(s[i]>=’A’&&s[i]<=’Z’)s[i]+=32; puts(s);} 12.阅读下面程序,当输入12345时,写出输出结果K=55 #include main() {longn,k=0; printf("Pleaseenteranumber: "); scanf("%ld",&n); for(;n! =0;) {k+=(n%10)*(n%10); n/=10;} printf("k=%d",k);} 13.阅读程序写出执行结果为: x=20,y=10 a=10,b=20 voidswap(intx,inty) {intz; z=x;x=y;y=z; printf("x=%d,y=%d\n",x,y); } main() {inta=10,b=20; swap(a,b); printf("a=%d,b=%d\n",a,b);} (四)程序填空题: 1、补写下面程序: 使其实现将输出的字符串,向前移一位存放,最后一个元素存放原来的第一个元素。 如输入: abcd123,后移一位的结果是bcd123a。 #include #include voidfun(char*str) {chartemp;intn,i; n=strlen(str); temp=str[0]] for(i=0;i str[n-1]=temp} main() {chars[50]; puts(“Enterastring: ”); gets(s); fun(s); puts(“Thechangedstring: ”); puts(s);} 2、以下程序的功能是: 输入两个数,调用函数使其值互换。 voidswap(int*Px,int*Py) {intt ; t=*px;*px=*py;*py=t;} main() {inta,b; scanf(“%d,%d”,&a,&b); swap(&a,&b); printf("a=%d,b=%d\n",a,b);} 3、在歌手大奖赛中,假设有10个评委,每个评委百分制评分,最后要去掉一个最高分求平均得出每个选手的最后得分,请编写程序按此规则求出1名选手的最后得分。 #defineN10 main() {ints[N],i,score=0,max; printf("PleaseInput%dscores: \n",N); for(i=0;i scanf("%d",&s[i]); max=s[0]; for(i=0;i {score+=s[i]; if(max max=s[i]; } printf("TheScore: %.2f\n",(float)(scores–max)/(N-1));} 4、以下程序的功能是: 找到person所指结构体数组中年龄最大的人。 #include #defineN3 main() {structperson {charname[10]; charsex; intage; }ss[N]={{"ZhangSan",'F',22},{"LiSi",'M',20},{"WangWu",'F',18}}; inti,m=0; for(i=1;i if(ss[].age>ss[].age)m=i; printf("%sistheoldest,andis%dyearsofage.",ss[m].name,ss[m].age);} (五)编程题: 1、输入底面半径r和高度h,计算并输出圆柱体的体积v。 v=πr2h(π取3.14,v计算结果保留到小数点后两位) main() { floatr,h,v; scanf("%f%f",&r,&h); v=3.14*r*r*h; printf("v=%.2f",v); getch(); } 2、编程: 输入华氏温度F,输出摄氏温度C和绝对温度K。 (计算结果保留到小数点后两位.转换公式: C=5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习 基础 专题
![提示](https://static.bdocx.com/images/bang_tan.gif)