C语言复习题及答案老师给的(58页).doc
《C语言复习题及答案老师给的(58页).doc》由会员分享,可在线阅读,更多相关《C语言复习题及答案老师给的(58页).doc(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?(B)A) int B) char C) long D) float 2、若x 为unsigned int 型变量,则执行下列语句后x值为( D ) x = 65535; printf(“%dn”,x);A)65535 B)1 C)无定值 D)-13、有以下程序main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(%d,%dn,k,m);程序运行后的输出结果是 (C ) A)0,0 B) 0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型
2、,则输出的结果是( C )。 sum=pad=5; pAd=sum + + ,pAd + +, + + pAd; printf(%dn,pad); A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是(A)。main() int a=4,b=5,c=0,d;d=!a&!b|!c;printf(%dn,d); A)1B)0C)非0的数D)-16、当执行以下程序段时(A)。x=-1;dox=x*x;while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为(D)。A)auto或static B) extern
3、或 register C) auto或extern D) extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是(C)。A)auto B) register C) extern D) static9、已知:int a, x; 则正确的赋值语句是(C )。 A) a=(a1+a2)/2;B) a*=*a+1; C) a=(x=1, x+, x+2);D) a=good;10、已知:int a, *p=&a; 则下列函数调用中错误的是( D )。 A) scanf(%d, &a);B) scanf(%d, p); C) printf(%d, a);D) print
4、f(%d, p);11、下述程序的输出结果是(D)。#include void main( ) struct complex int x ; int y; cnum2=1,3,2,7; printf(“%d”, cnum0.y/cnum0.x*cnum1.x) ; A) 0 B) 1 C) 3 D) 6 12、下述程序的输出结果是(B)。 #include void main( ) union unsigned char c ; unsigned int i4; z ; z.i0=0x39 ; z.i1=0x36; printf(“%c”,z.c); A) 6 B) 9 C) 0 D) 313
5、、下述关于C语言文件操作的结论中,(B)是正确的。A)对文件操作必须先关闭文件B)对文件操作必须先打开文件C)对文件操作顺序无要求D)对文件操作前必须先测试文件是否存在,然后再打开文件14、以下程序的输出结果是(C)。 main() char ch34=123,456,78,*p3; int i;for (i=0;i3;i+) pi=chi;for (i=0;i3;i+) printf(%s,pi); A)123456780 B)123 456 780 C) 12345678 D) 14715、对于所定义的二维数组a23,元素a12是数组的第( D )个元素。A)3 B)4 C)5 D)6 1
6、、 赋值运算符的优先级低于关系运算符()。2、 条件运算符的结合方向是“自左向右” ()。3、 C语句的循环语句中循环体如果包含一个以上的语句,必须以复合语句形式出现()。4、 C程序中的函数不能嵌套调用,但可嵌套定义()。5、 若自定义函数要求函数名返回一个值,则该函数体中必须要有return语句( )。6、 当形式参数为指针变量名时,实际参数可为指针变量名、数组名或其它类型变量的首地址()。7、 若有说明:static int a34;,则数组a中各数组元素可在程序的编译阶段得到初值0()。8、 若用数组名作为函数调用时的实参,则实际上传递给形参数组的是数组的第一个元素的值()。9、 利用
7、指针和结构体类型可以构成表、树等复杂的数据结构()。10、共用体变量的地址和它的各成员的地址都是同一地址()。11、printf函数中的“%0”格式参数表示用来输出unsigned型数据( )。12、在一个C程序中,所有要使用的变量和要调用的函数都必须在main( )函数中定义( )。13、赋值运算符的结合性是“自右至左”( )。14、一个C程序可以由多个源程序文件组成( )。15、do-while语句构成的循环,当while语句中的表达式的值为零时结束循环( )。 三、写出下面各程序的运行结果第 57 页-1、 #includemain ( )int i=0, j=0, k=0, m;for
8、 (m=0; m4; m+)switch (m)case 0: i=m+; case 1: j=m+; case 2: k=m+; case 3: m+;printf(“n%d, %d, %d, %d”, i, j, k, m);2、 #includemain ( )int i=1;while (i=15)if (+i% 3!=2)continue;elseprintf(“%d”, i);3、#include add1(int a , int n) int i; for(i =0;in;i+) ai+;main() static int array =0,1,2,3,4,5,6,7,8,9;i
9、nt j;add1(array,10);for(j=0;j10;j+)printf(“%d”,arrayj);4、union data long w; float x; int y; char z; beta;main( ) beta.w=123456;beta.y=888;beta.x=3.14;beta.z=x;printf(“%c”,beta.y); 5、# include typedef struct student char name10; long sno; float score; STU;main( ) STU a=zhangsan,2001,95,b=Shangxian,20
10、02,90,c=Anhua,2003,95,d,*p=&d; d=a; if(strcmp(a.name,b.name)0) d=b; if(strcmp(c.name,d.name)0) d=c; printf(%ld%sn,d.sno,p-name);四、程序填空1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将缺省语句填上。main ( )float x, amax, amin;scanf (“%f”, &x);amax=x; amin=x;while ( )if ( ) amax =x;if ( ) amin =x;scanf (“%f
11、”, &x);printf(“amax=%f, amin=%fn”, amax, amin);2、下面的程序是用指针来交换两个数据,请将缺省语句填上。void exchange( int *p ,int *q) int t; t=*p; *p=*q; *q=t;main() int a,b,*x,*y; a=10;b=20; x=&a; printf(“%d %dn”,*x, *y); 五、程序设计题 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数。 2、用自定义函数
12、和数组求n个数的平均值,并用主函数调用参考答案:一、单项选择题1、B 2、D 3、C 4、C 5、 A 6、A 7、D 8、C 9、C 10、D 11、D 12、B 13、B 14、C 15、 D二、判断题() 2、() 3、() 4、() 5、()6、 ) 7、() 8、() 9、()10、()11、( )12、( ) 13、( ) 14、( ) 15、( )三、写出程序的运行结果1、 答案是:0,1,2,52、 答案是:2 5 8 11 143、答案是:123456789104、答案是:x5、答案是:2002Shangxian四、程序填空1、答案是:x=0 xamax xamin2、答案:
13、y=&b; exchange(x,y);五、程序设计题1、参考答案: #define N 10struct student char num6;char name8;int score4;float ave; stuN;main() int i,j,max,maxi,sum; float average; /*输入*/for ( i=0; iN; i+) printf(“nInput scores of student %d,n”,i+1);printf(“No.:”);scanf(“%s”,stui.num);printf(“name:”);scanf(“%s”,stui.name);for
14、(j=0;j3;j+) printf(“score %d:”,j+i); scanf(“%d”,&stui.scorej); /*计算*/average=0;max=0;maxi=0;for(i=0; iN; i+) sum=0; for(j=0; jmax) max=sum; maxi=i; average/=N;/*打印*/printf(“NO. name score1 score2 score3 averagen”);for(i=0; iN; i+) printf(“%s%10s”, stui.num , stui.name); for(j=0; j3; j+) printf(“%9d”
15、,stui.scorej); printf(“%8.2fn”,stui.avr); printf(“average=%6.2fn”,average);printf(“The highest score is : %s, score total: %d”, stumaxi.name,max); 2、参考答案: float average( float a , int n) float aver=0; int j; for(j=0;jn;j+) aver=aver+aj; aver=aver/n; return aver; main() float x10,y; int j; for(j=0;j1
16、0;j+) scanf(“%f”,&xj); y=average(x,10); printf(“aver=%.2fn”,y); 复习B:一、单项选择题1、逗号表达式2,4,6,8的值为( d )。 A )2 B)4 C)6 D)82、以下选项中非法的表达式是( d ) A)0=x&x100 B)i=j = =0 C)(char)(65+3) D)x+1=x+13、若定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用( a )。A)scanf(“%f”,&a); B) scanf(“%5.2f”,a);C) scanf(“%6.2f”,&a); D) scanf(“
17、%f”,a);4、下列程序的运行结果是( d )main()int a=3, b=2, c=1, k=4; printf(%dn, ka? k : cb? c: a);A) 4B) 3C) 2D) 15、以下程序中,while循环的循环次数是(d)。main( ) int i=0;while(i10) if(i1) continue;if(i=5) break;i+;A)1B)10C)6D)死循环,不能确定次数6、执行语句:for(i=1;i+4;)后;变量i的值是(c)。A)3B)4C)5D)不定7、有关函数参数,下列说法不正确的是(c)。A) 实参可以将数据传给形参; B) 实参和形参是不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题 答案 老师 58
限制150内