C语言复习提纲.doc_第1页
C语言复习提纲.doc_第2页
C语言复习提纲.doc_第3页
C语言复习提纲.doc_第4页
C语言复习提纲.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010-2011年度第二学期“C语言程序设计”期末考试复习提纲一、 题型及知识点分配选择题15填空题5程序填空2程序阅读4编程3知识点小计2分/题2分/题1.5分/空4分/题数据类型4111(10)24结构程序4221(10)30数组21411(12)28函数114指针24结构体148文件12题型小计3010121632二、题例:(一)选择题:1 下列四组选项中,均是不合法的用户标识符的选项是()。A) G S_4 int B) double 2a0 _VC) !A3 a#b do D) b-a abcSwep2 下列四组选项中,属于合法的用户标识符的选项是()。A)for B)XYZ C)5i D)For3. 不合法的C语言整型常量是( )。A)0xe2L B)2e3 C)18L D)0xe34. 不合法的C语言实型常量是( )。A)-123E-3.0 B)-.123 C)-1.23E-1 D)-0.1235设char a; int b; float c; double d; 则表达式 d/b+c*a值的数据类型为( )。A) char B) int C) double D) float6设有说明:char a; int b; float c; double d; 则表达式(int)(d)/b+c*a值的数据类型为( )。 A) char B) int C) float D) double7. 定义三个变量x、y、z,并分别赋初值为0 ,能实现该功能的语句是( b)。A)int x=0;y=0;z=0; B)int x=0,y=0,z=0; C)int x,y,z=0; D)int x=y=z=0;8. 定义三个变量a,b,c,并都初始化为a。能实现该功能的语句是(b )。A)char a=a;b=a;c=a; B)char a=a,b=a,c=a; C)char a,b,c=a; D)char a=b=c=a;9设以下变量均为int类型,则值不等于8的表达式是( )。 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循环的循环次数是( )。int i=0,j;for (j=3;i=j=7;i+,j+)printf(”hello”); A)1次 B)5次 C)10次 D)无限次11. 下列for循环的循环次数是( )。int i=0,j;for (j=3;i=j=0;i+,j+)printf(”hello”); A)0次 B)5次 C)1次 D)无限次12. 表达式25 & 69的值是( )。A) 0B) 1C) 2D) 313下列for循环的循环次数是( )。int i,j; for(i=j=0;!i|j=5;j+)i+; A) 1次 B)5次 C)6次 D)无限次14. 下列while循环的循环次数是( )。int a=1,b=2; while(a+b) a- -; A)0次 B)1次 C)5次 D)无限次15下面程序段的运行结果是( )。 int n=0; while( n+=2 );printf(%d,n); A)3 B)4 C)012 D)12316下面程序段的运行结果是( )。 int n=0; while( n+b?(ac?a:c):(b);A) 2 B) 1 C)3 D) 不确定21有一个函数原型为:test(float x,int y); 则该函数的返回值类型为( )。A) void B) double C) float D) int22有以下程序:#includemain() charc; while(c=getchar()!=?)putchar(c+); 程序运行时,如果从键盘输入:Y?N?,则输出结果为( )。 A) Y B) Z C) X D) YN23. 有以下程序:#includemain() charc; while(c=getchar()!=n)putchar(-c); 程序运行时,如果从键盘输入:BC,则输出结果为( )。 A) BC B) AB C) B D) C24有两个字符数组x、y, 则以下正确的输入语句是( )。 A) scanf(%s%s,&x,&y); B) scanf(%s%s,x,y); C) gets(x,y); D) gets(&x),gets(&y);25有个字符数组a,则以下正确的输入语句是( ). A)gets(a); B)scanf(%s,a); C)scanf(%s,&a); D)gets(a);26. 以下函数调用语句中实参的个数是( )。 fun(v1,v2),(v3,v4,v5),v6); A) 3 B) 4 C) 5 D) 627若有以下定义int a =1,2,3,4,5,6,7;char c1=b,c2=2;则数值为4的表达式是_ _。A) c2+2 B) a2+2 C) F-c1 D) a5-c228说明语句如下:int a10=1,2,3,4,5,6,7,8,9,*p=a;则数值为6的表达式是( )。A*p+6 B*(p+6) Cp+5 D*p+=529以下程序的输出结果是(c )main() int x5=10,20,30,40,50,*p; p=x; *p+; printf(“%d”,*p);A10B11C20D2130定义一个结构体型变量时,分配给它的内存字节数是( )。A结构体型变量的成员中,占用字节数最多的成员占用的字节数B结构体型变量的成员中,占用字节数最少的成员占用的字节数C结构体型变量的成员中,所有成员占用的字节数总和D结构体型变量的成员中,所有成员占用的字节数总和加131. 根据以下定义,能输出字符A的语句是( )。 struct person char name9; int age; class10=“John”,17,”Paul”,19,”Mary”,18,”Adam”,16; A) printf(“%c”,0); B) printf(“%c”,4); C) printf(“%c”,3); D) printf(“%c”,1);32. 根据以下定义,输出字符不为a的语句是( )。 struct person char name9; int age; class10=“John”,17,”Paul”,19,”Mary”,18,”Adam”,16; A) printf(“%c”,1); B) printf(“%c”,1); C) printf(“%c”,0); D) printf(“%c”,2);33下面程序的运行结果是( )。 main() struct cmplx int x; int y; cnum2=1,2,3,4; printf(%dn,cnum1.y/cnum0.x*cnum0.y); A) 1 B) 4 C) 6 D) 834下面程序的运行结果是( )。 main() struct cmplx int a; int b; cnum3=1,2,3,4,5,6; printf(%dn,cnum1.a/cnum0.b*cnum0.a); A)4 B)3 C)2 D)135若要将 “program.txt”文件打开用于追加信息,则以下格式正确的是( )。 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函数打开一个新的只写的二进制文件,文件的打开方式应是( )。 A) “w” B) “wb” C) “w+“ D) “wb+”37下列关于C语言中对文件的操作的传述中,正确的是( )。A对文件进行操作必须先打开文件 B对文件进行操作必须先闭文件C对文件进行操作时没有顺序的要求 D对文件操作前须先测试文件是否存在38要使用fopen函数打开一个新的可读可写的文本文件,文件的打开方式应是( )。 A) “a+” B) “r+” C) “w+“ D) “wb+”39若要将 “text.txt”文件打开用于追加信息,则以下格式正确的是( )。 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的文本文件进行读、写操作,下面符合此要求的函数调用是( )。Afopen(“a:userabc.txt”,“r”) Bfopen(“a:userabc.txt”,“r+”)Cfopen(“a:userabc.txt”,“rb”) Dfopen(“a:userabc.txt”,“w”)41执行函数fopen (“abc.txt”, “w+”)的含义是( )。A以读的方式打开一个文件B以写的方式打开一个文件 C创立一个既可读又可写的文件D创立一个只可写的文件42要使用fopen函数打开一个新的只写的二进制文件,文件的打开方式应是( )。 A) “w” B) “wb” C) “w+“ D) “wb+”(二)填空题:3x-2yx2-y(1) 将算术表达式 写成C表达式为: _( 3x-2y)/(x*x-y ) _。(2) 表达式(1/2)*3.0的值为:_0_ _。2x+1x2+4y(3) 将算术表达式 写成C表达式为:_(x*x+4y)/(2x+1) _。(4) 若有 int x=10,y=20; 则运行 printf(“%d,%d”,+x,y+); 结果为:_11,20_。(5) 若有定义int a45=1,0,1,0,2,1,2,1,0,5,则初始化后,a13的值是_1 _,a31的值是_0_ _。(6) 表达式(1/2)*1.5的值为:_0 _。(7) 将表达式abc写成C表达式为:_a=b&b=c_ _。(8) 以下程序的功能是判断一个大于1的整数是否为素数,是则输出Y,否则输出N,请填空。main() int i,n; scanf(“%d”,&n); for(i=2;i=n_ _)printf(“Y”); _ else_ _printf(“N”); (9)以下程序的运行结果是_3_。 main() int a=1,2,3,4,5;char c=a;printf(“%d”,a c - c); (10) 以下程序的功能是输入一个字符串,输出字符串的长度,请填空。#include main() char str20; gets(_str _); printf(“%d”,_strlen(str)_ _); getch( );(11) 以下函数的功能是判断一个大于1的整数是否为素数,是则返回Y,否则返回N,请填空。_char _ sushu(int x) int i; for(i=2;ix;i+=2) if(_ x%i=0 _)return N; return Y;(12) 若有定义: int a=2,4,6,8,10,12,*p=&a1; 则*(+p)的值是_ 6 _。(三)程序阅读题:(写出程序运行结果)1.下面程序的输出结果是 45 。 #include main() int x; x=(x=4*5,x+5,x+25); printf(“x=%dn”, x);2. 下面程序的输出结果是 x=1,y=2.40 。 #include main() float y; int x;x=1.2;y=(x+3.8)/2; printf(“x=%d,y=%.2fn”, x,y);3.下面程序输出结果是 31 。main() int x=10, y=20, z=30;if ( x y ) if ( y 0 ) z=0;else z+=1;printf (“%dn” ,z);4. 下面程序运行结果是 7 。#include main() int x=5;if(x+5)printf(“x=%dn”, x);else printf(“x=%dn”, +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() int i, 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() int y;for(y=10;y0;y-) if (y%3= =0 ) printf(%d, -y); 8.下面程序的运行结果是 7,3 #include main() int a10=0,2,-13,21,11,67,-78,8,90,-53; int i,count1=0, count2=0; for(i=0;i=0) count1+;else count2+;printf(“%d,%dn”, count1, count2 );9. 下面程序输入1 2 3 4 5 6 7 8 9,运行结果是 The sum is 15 #include main() int a33,sum=0; int i,j; for(i=0;i3;i+) for(j=0;j3;j+)scanf(“%d”,&aij);for(i=0;i3;i+)sum+=aii;printf(“The sum is %dn”, sum);10、下面程序运行结果是 2 6 10 #include main() int a33=1,2,3,4,5,6,7,8,9,b3=0, i , j; for(i=0;i3;i+) bi= ai0+ a0i; for(i=0;i3;i+) printf(“%5d”,bi);11. 下面程序运行时,输入AbCdEf,阅读程序写出输出结果为: abcdef #include #include #define N 100main() char sN;int i; printf(“enter a array:”);gets(s); for(i=0;i=A& si=Z) si+=32;puts(s);12. 阅读下面程序,当输入12345时,写出输出结果 k= 55 #include main() long n, k=0;printf(Please enter a number: );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 void swap(int x, int y) int z; z=x;x=y;y=z; printf(x=%d,y=%dn ,x ,y);main() int a=10,b=20; swap(a,b); printf(a=%d,b=%dn,a,b);(四)程序填空题:1、补写下面程序:使其实现将输出的字符串,向前移一位存放,最后一个元素存放原来的第一个元素。如输入:abcd123,后移一位的结果是bcd123a。#include #include void fun(char *str) char temp;int n,i; n =strlen(str); temp=str0; for( i=0; in-1 ;i+) stri=str i+1 ; strn-1=temp; main() char s50;puts(“Enter a string:”); gets(s) ; fun(s);puts(“The changed string:”); puts(s); 2、 以下程序的功能是:输入两个数,调用函数使其值互换。void swap( int*px,int *py ) int t t=*px;*px=*py;*py=t;main() int a,b; scanf(“%d,%d”,&a,&b); swap( &a,&b ); printf(a=%d,b=%dn,a,b);3、 在歌手大奖赛中,假设有10个评委,每个评委百分制评分,最后要去掉一个最高分求平均得出每个选手的最后得分,请编写程序按此规则求出1名选手的最后得分。# define N 10 main() int sN , i , score=0 , max ;printf(Please Input %d scores:n, N );for(i=0; iN ; i+)scanf(%d , &si); max=0 ;for( i=0 ; imax ) max=si ; printf(The Score:%.2fn , (score-max)/9 ); 4、 以下程序的功能是:找到person所指结构体数组中年龄最大的人。#include # define N 3 main() struct person char name10; char sex;int age; ssN=Zhang San,F,22,Li Si,M,20,Wang Wu,F,18; int i , m =0 ; for(i=1;iN;i+) if( ssi-1.agessi.age ) m= i; printf(%s is the oldest,and is %d years of age., ,ssm.age ); (五)编程题:1、输入底面半径r和高度h,计算并输出圆柱体的体积v。 v=1/3r2h(取3.14,v计算结果保留到小数点后两位)main()int r,h;float v;printf(“please in put r,h”);scanf(“%d,%d”,&r,&h);v=3.14*r*r*h/3;printf(“%.2f”,v);getch();2、 编程:输入华氏温度F,输出摄氏温度C和绝对温度K。(计算结果保留到小数点后两位.转换公式:C=5/9*(F-32);K=C+273.15 )main()float F,C,K;printf(“in put Fn”);scanf(“%f”,&F);C=5.0/9*(F-32);K=C+273.15;printf(“C=%.2f,F=%.2f”,C,F);getch();3、 编程:使之能正确地计算SUM。计算公式如下:SUM=1+1/2+1/3+1/4+1/nmain()int i,n;float sum=0;scanf(“%d”&n);for(i=1;i=n;i+)sum=sum+1.0/i;printf(“%.2f”,sum);getch();4、 编程:如果0n17, 使之能正确地计算n!main() int i,n; double s=1; scanf(%d,&n); for(i=1;i=n;i+) s=s*i; printf(%.2f,s); getch();5、 求和:从1加到100main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(%d,sum); getch();6、 从键盘输入一扇形的半径和角度,求扇形的面积和周长。main() int a,r; float s,l; scanf(%d%d,&a,&r); s=(a/360.)*r*r*3.14; l=2*r*3.14*a/360; printf(s=%.2ftl=%.2f,s,l); getch();7、 输入一个字符串,将其中的大写字符转换成小

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论