1、 A)C程序总是从文件中第一个函数开始执行B)C程序中,只有main( )函数才可以调用其他函数C)C程序总是从main( )函数开始执行D)C程序中的main( )函数必须放在程序的开头17. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为( A ) A)2.5 B)2.75 C)3.5 D)018. 设变量a是整型,f是实型,i是双精度型,则表达式10+i*f值的数据类型为( C ) A)int B)float C)double D)不确定19. 有输入语句:scanf(%d,%d,&a,&b);为使变量a、b分别为5和
2、3,从键盘输入数据的正确形式为( B ) A)5 3 B)5,3 C)a=5 b=3 D)a=5,b=3=0; j-) printf(%2d,xj2-j); A)1 5 9 B)1 4 7 C)7 5 3 D)3 6 921. 执行下面程序后,a的值是( B ) #include #define SQR(x) x*x void main( ) int a=10,k=2,m=1; a=SQR(k+m); printf(%dn,a); A)10 B)5 C)2 D)122. 以下叙述不正确的是( C ) A)在函数内部定义的变量是局部变量B)函数中的形式参数是局部变量C)全局变量的作用范围仅限于其
3、所在的整个文件D)局部变量的作用范围仅限于本函数23. 设a=3,b=4,c=2,d=1,则表达式“ab?a:cd?c:d”的值为( C )A)4 B)3 C)2 D)124. 有以下程序段:x=-1;dox=x*x;while(!x);执行时,循环体执行的次数为( B )A)0 B)1 C)2 D)不确定25. 以下不正确的if语句形式是( C ) A)if (xy&x!=y);B)if (x= =y) x+=y;C)if (x!=y) scanf(%dx) else scanf(y);D)if (xy) x+;y+;26. 以下程序的输出结果是( C ) #include void mai
4、n( ) int x=2,y=-1,z=2; if (xy) if (y0) z=0; else z+=1;,z);A)0 B)1 C)2 D)327. 以下能正确计算12310的程序段是( A )A) i=1,s=1; B) s=1;i=1; do while(i=10) s=s*i;i+; s=s*(+i); while(i11);C) for(i=1,s=0;i=10;i+) D)for(i=1,s=1;i+) s=s*i; s=s*i;28. 若j为整型变量,则以下循环执行次数是( C )for (j=0;j= =0;),j-); A)无限次 B)0次 C)1次 D)2次29. 若有说
5、明:int a10;则对a数组元素的正确引用是( C ) A)a3.5 B)a(8) C)a6-5 D)a1030. C语言规定,变量做实参时,它和对应形参之间的数据传递方式是( B )A)地址传递 B)单向值传递 C)双向值传递 D)由用户指定传递方式31. C中,一个float类型的数据在内存中占( C )个字节。A) 1 B) 2 C) 4 D) 832. 设有程序段:int k=5;while (k=0)k-;则下列描述中正确的是( C )A) while循环执行5次 B) 循环是无限循环 C) 循环语句一次也不执行 D) 循环体语句执行一次33. 下面程序段的运行结果是( B )ch
6、ar c5= , b0c ; printf(, c);A) B) ab C) Abc D) abc34. 以下不正确的字符串赋值语句是( C )A) char *s; s=abcde B) char s =C) char s10; D) char *s=35. 设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是( B )A) k=*p1+*p2; B) p2=k; C) p1=p2; D) k=p2-p1;36. 下面程序的输出结果是( A ) char s = ABCD char *p; for (p=s;pc”属于哪种表达式?( A )A) 关系 B) 赋值
7、C) 逻辑 D) 非法43. 以下不合法的C表达式是( C )A) 10 | 8 B) 12=9+1 C) +5 D) x!=y44. 给定以下程序段:int n=10;while (n6) n-;%3d,n);以上程序段输出结果是( D )A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 645. 若i,j已定义为int型,则以下程序段中内循环总的执行次数是( C )for (i=5; i0; i-)for (j=1; jb | c的值为 1 4. 整数m既能被3整除又能被4整除的逻辑表达式为 (m%3= =0)&(m%4= =0) 5. 若有定义:double
8、 a105; 则数组a中行下标最大值为 9 ,列下标最大值为 4 。6. 若有定义:int a 1,4,6,5,8,9; 则 *(a+5) 的值为 9 7. 设有如下定义int a56,*p; 取数组元素a42的地址放到p中的语句为 p=&a42;8. 未加特别说明(说明为静态的)的全局变量是外部的,能被其它文件中的函数使用,而在引用它的文件中,需要用关键字extern说明。9. 已知a=10,b=20,则表达式!ab的值为 0 10. 写出0x1的C逻辑表达式(0x)&(x1)11. 若有定义:int a10,*p=a; 则元素a5的值用p表示的形式是 *(p+5) 12. 若有定义:int
9、 *p4; 则标识符p表示 数组长度为4的一维指针数组13. 凡是函数中未指定存储类型的局部变量,其默认的存储类型为 auto 三、程序填空1. 下面程序的功能是:从键盘输入一个字符,若是大写字母,则转换为小写字母并输出,若为小写字母则直接输出,请在_处填上合适内容,使程序完整。#include =AchZ ch+=32;,ch);2. 下面程序的功能是:求1100间的偶数和,请在_处填上合适内容,使程序完整。 int num, sum=0; for (num=2; num=100; num=num+2) sum=sum+num ; printf(1-100间的偶数和是:, sum);3. 下
10、面程序段是求n!的递归函数,请将函数补充完整。double fac(int n) double result; if (n= =1) result=1; else result=n*fac(n-1); return(result);4. 以下程序的功能是:输入一整数n,判断是否为素数。#include int i, n;n);for (i=2; isqrt(n)%d is a prime number.n, n);else%d is not a prime number.n四、阅读程序1. #include z) cnt1+; else cnt2+;COUNT=%dn,cnt1); 若输入“T
11、his is a C program.”,运行结果:COUNT=132. #include int i,j,temp; int a =0,1,2,3,4,5,6,7,8,9; for(i=0,j=9;j;i+,j-) temp=ai;ai=aj;aj=temp; for(j=0;j10;j+),aj); 运行结果:9 8 7 6 5 4 3 2 1 03. #include char str120=good,str2 =morning int i,j; for (i=strlen(str1),j=0;str2j! i+, j+) str1i=str2j; str1i=string1=%s,st
12、r1);string1=goodmorning4. #include val) val=aj;pos=j;Max=%f,position:,val,pos);本程序的功能是:从键盘输入10个数存到数组a中,求10个数的最大值及其位置当程序运行时,从键盘输入“1 0 2 9 3 8 4 7 5 6”,运行结果:Max=9.000000,position:35. #include float average(int x , int n) int i; float sum=0;n; sum+=xi; return (sum/n); int a5=2,4,6,8,10; float rst; rst=
13、average(a,5);result=%fn,rst);result=6.0000006. 给定如下程序: char grade;, &grade);switch (grade) case :85100n); break;case B7084nC6069nDaj+1)t=aj;aj=aj+1;aj+1=t; for (i=0;5;,ai);该程序的功能是:用“起泡法”对数组a中的5个整数按由小到大排序并输出输出的结果为:2 3 5 6 78. 给定如下程序:void fun( ) auto int b=0;static int c=4;b+;c+;b=%d c=%dn,b,c); int i
14、;for (i=0;3;fun( );运行结果是:b=1 c=5b=1 c=6b=1 c=79. 给定如下程序: char *p1, *p2, c, s50; gets(s); p1=s; p2=s+strlen(s)-1; for(; p1p2; p1+, p2-) c=*p1; *p1=*p2; *p2=c;The new string is %sn, s);此程序的功能是:从键盘输入一字符串存放到数组s中,将此字符串逆序输出当程序运行时,从键盘输入“abc we #y”,输出的结果是:The new string is y# ew cba五、按要求编程1. 编写0100之间偶数之和的程序
15、。 sum=sum+num;sum=%dn2. 编程计算1!+2!+3!+20!。 float s=0,t=1; int n; for(n=1;n=20;n+) t=t*n; s=s+t;1!+.+20!=%en,s);3. 统计由键盘输入的任意一串字符中空格的个数。char ch;int space=0;while (ch=getchar( )! if (ch= ) space+;konggeshu=%dn,space);4. 编写程序找出1100之间的素数,并统计素数的个数。 int m,k,i,n=0; for(m=1;m=k+1),m); n=n+1; if(n%10=0) print
16、f(nntotal number is=%d5. 打印杨辉三角形(10行)。要求:使用二维数组和循环语句实现。11 11 2 11 3 3 1#define N 11 int i,j,aNN; for(i=1;N; aii=1; ai1=1; for(i=3; for(j=2;=i-1; aij=ai-1j-1+ai-1j; for(j=1;=i;%6d,aij);6. 从键盘输入10个数,找出最大值与最小值,并计算它们的平均值。 float a10,aver,sum,max,min; int i; for(i=0;i+) max=min=a0; sum=a0; if(aimax) max=ai; e
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1