1、. . . .单项选择=题号:1482执行以下程序段后,输出结果和a的值是()。 int a=10; printf(%d,a+);A、11 和 10B、11 和 11C、10 和 11D、10 和 10答案:C题号:2100已知字符A的ASC代码值是65,字符变量c1的值是A,c2的值是D.执行语句printf(%d,%d,c1,c2-2);后,输出结果是A、65,66B、A,BC、65,68D、A,68答案:A题号:5055相同结构体类型的变量之间,可以()。A、比较大小B、地址相同C、赋值D、相加答案:C题号:3217int a10;合法的数组元素的最小下标值为()。A、1B、0C、10D
2、、9答案:B题号:45能正确表示逻辑关系: a10或a0 的C语言表达式是A、a=0 | a=10 or a=10 & a=10 | a=0答案:D题号:157main()int x=1,a=0,b=0;switch (x) case 0: b+; case 1: a+; case 2: a+;b+; printf(a=%d,b=%d,a,b);该程序的输出结果是( )A、2,2B、2,1C、1,1D、1,0答案:B题号:4784设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为()。A、不确定B、doubleC、intD、float答案:B题号:1647 以下程序
3、中,while循环的循环次数是_main() int i=0; while(i10) if(ib)=c 的值为真。答案:正确题号:66若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。答案:正确题号:758若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。答案:错误题号:2158#define 和printf 都不是C语句。答案:正确题号:5102关系运算符 100) printf(“%dn”, a 100);else printf(“%dn”, a = 100); 答案:空 1:1题号:32
4、55表达式(int)(double)(5/2)+2.5)的值是_.答案:空 1:4题号:2472阅读下面程序,程序执行后的输出结果为_。#include stdio.hmain()char a,b;for(a=0,b=9;ab;a+,b-) printf(%c%c,a,b);printf(n);答案:空 1:0918273645题号:937以下程序段的输出结果是_。int i = 0, sum = 1; do sum += i+; while( i y)if(xz)printf(%d,x);else printf(%d,y);printf(%dn,z);答案:空 1:3程序设计=题号:2660
5、/*-【程序设计】-功能:计算出k以内最大的10个能被13或17整除的自然数之 和。(k3000)。-*/#include #includeconio.hvoid bky(); int fun(int k) /*Begin*/ /* End */ main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); bky(); void bky() FILE *IN,*OUT; int s ; int t; int o; IN=fopen(in.dat,r); if(IN=NULL) printf
6、(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(s=1;s=2)&(b10)if(k%13=0)|(k%17=0) a=a+k;b+; k-; return a;题号:5854C语言中不可以嵌套的是()。A、选择语句B、循环语句C、函数调用D、函数定义答案:D题号:1957C语言中,逻辑真等价于A、非零的整数B、大于零的整数C、非零的数D、大于零的数答案:C题号:3786用户定义的函数不可以调用的函数是()。A、本文件外的B、main函数C、本函数下面定义的D、非整型返回值的
7、答案:B题号:1764以下叙述中正确的是 ()。A、C程序中注释部分可以出现在程序中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号“和”只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名答案:A题号:299下面四个选项中,均是不合法的浮点数的选项是()。A、-e3 .234 1e3B、160. 0.12 e3C、123 2e4.2 .e5D、-.18 123e4 0.0答案:C题号:6131假定所有变量均已正确定义,下列程序段运行后x的值是()。k1=1;k2=2;k3=3;x=15;if(!k1) x-;else if(k2) x=4;
8、else x=3;A、15B、14C、3D、4答案:D题号:3208若变量已正确定义,以下程序段的输出结果是x=5.16894; printf(“%fn”, (int)(x*1000+0.5)/(float)1000);A、5.17000B、输出格式说明与输出项不匹配,输出无定值C、5.168000D、5.169000答案:D题号:5043以下选项中合法的实型常数是()。A、5E2.0B、1.3EC、E-3D、.2E0答案:D题号:5608有以下程序 main() int i; for(i=0; ib)=c 的值为真。答案:正确题号:2316while和dowhile循环不论什么条件下它们的结
9、果都是相同的.答案:错误题号:2989char c=Very Good; 是一个合法的为字符串数组赋值的语句。答案:正确题号:5034语句scanf(%7.2f,&a);是一个合法的scanf函数。答案:错误题号:2067如果想使一个数组中全部元素的值为0,可以写成 int a10=0*10;答案:错误题号:5263x*=y+8 等价于 x=x*(y+8)。答案:正确题号:3862如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。答案:正确题号:3558整数 -32100可以赋值给int型和long int型变量。答案:正确填空=题号:551请写出以下程序的输出结果_。m
10、ain() int a = 100;if( a 100) printf(“%dn”, a 100);else printf(“%dn”, a = 100); 答案:空 1:1题号:1575对以下数学式,写出三个等价的C语言表达式是_、_、_ 答案:空 1:a/c/b 【或】 a/(b*c) 【或】 a/b/c空 2:a/c/b 【或】 a/b/c 【或】 a/(b*c)空 3:a/b/c 【或】 a/c/b 【或】 a/(b*c)题号:1076表达式3.5 + 1 / 2的计算结果是_。答案:空 1:3.5题号:2758若x为double型变量,请写出运算x = 3.2, +x后表达式的值_和
11、变量的值_。答案:空 1:4.2空 2:4.2题号:582以下程序的执行结果是_。main() int k=8; switch(k) case 9: k+=1;case 10: k+=1;case 11: k+=1; break;default: k+=1;printf(%dn,k);答案:空 1:9题号:2868若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是_。请用代表Enter键。scanf(“%d%c%d%c%d%c%d%c”, &w, &a, &x,&b, &y, &c, &z, &d);答案:空 1:10A
12、20B30C40D题号:4063以下程序段的输出结果是_、_、_、_ double a = 513.789215; printf(“a = %8.6f, a = %8.2f, a = %14.8f, a = %14.8lfn”, a, a, a, a);答案:空 1:a = 513.789215空 2:a = 513.79空 3:a = 513.78921500空 4:a = 513.78921500题号:5076以下程序的输出结果是_。main() int a=0;a+=(a=8);printf(%dn,a); 答案:空 1:16题号:5410以下程序的执行结果是_。main() int a
13、, b, *p = &a, *q = &b; a = 10; b = 20; *p = b; *q = a; printf(“a = %d, b = %dn”, a, b); 答案:空 1: a = 20, b = 20 题号:6975以下程序的输出结果是_。main() int x = 2;while ( x- );printf(“%dn”, x); 答案:空 1:-1程序设计=题号:58/*-【程序设计】-功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。-*/#include string.h#include void bky(); void change(char str
14、) /*Begin*/ /* End */main() void change(); char str40; gets(str); change(str); puts(str); bky();void bky() FILE *IN,*OUT; char i200; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); fscanf(IN,%s,i); change(i); fprintf(OUT,%sn,i); f
15、close(IN); fclose(OUT);示例代码:int i; for(i=0;stri!=0;i+) if(stri=a & stri=0 | a=10 or a=10 & a=10 | a=0答案:D题号:53若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。A、int *p=&x;B、int p=&x;C、*p=*x;D、int *p=x;答案:A题号:2244字符串指针变量中存入的是A、第一个字符B、字符串C、字符串的首地址D、字符串变量答案:C题号:3722下列字符数组长度为5的是A、char c10= h, a, b, c, d;B、char b= h,
16、a, b, c, d, 0;C、char a=h, a, b, c, d;D、char d6= h, a, b, c, 0 ;答案:C题号:2703从键盘上输入某字符串时,不可使用的函数是()。A、getchar()B、scanf()C、fread()D、gets()答案:A题号:3402以下对整型数组a的正确说明是:A、int n = 10, an;B、C、D、int a(10);答案:C题号:130若char a10;已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是()。A、scanf(%s,a);B、for(i=0;i c) b = a; a = c; c = b;答案
17、:空 1:3空 2:2空 3:2题号:3925阅读下面程序,则执行后程序的结果为_。#include stdio.hmain()int a=0,b=0;while(a15)a+;while(b+15);printf(%d,%dn,a,b);答案:空 1:15, 16题号:4473有以下程序段:s = 1.0; for(k = 1; k = n; k+) s = s + 1.0 / (k * (k + 1); printf(“%fn”, s);请填空,使下面的程序段的功能完全与之等同。 s = 0.0;_; k = 0; do s += d; _;d = 1.0 / (k * (k + 1);
18、while(_ ); printf(“%fn”, s);答案:空 1:d = 1.0空 2:k+空 3:k = n题号:6975以下程序的输出结果是_。main() int x = 2;while ( x- );printf(“%dn”, x); 答案:空 1:-1题号:4423下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空。main() int i, x, y=1;scanf(%d, &x);for(i=2; i= _; i+)if_ y=0; break;printf(%dn, y);答案:空 1:x / 2空 2:!(x % i) 【或】 x % i
19、= 0程序设计=题号:788/*-【程序设计】-题目:用while语句求1100的累计和。-*/void bky(); int fun(int n) /*Begin*/ /* End */ void main() int sum = 0; sum=fun(100); printf (sum = %dn, sum); bky();void bky() FILE *IN,*OUT; int i; int iIN,iOUT; IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed)
20、; OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); for(i=0;i5;i+) fscanf(IN,%d,&iIN); iOUT=fun(iIN); fprintf(OUT,%dn,iOUT); fclose(IN); fclose(OUT);示例代码: int i=1,sum=0; while(i=n) sum=sum+i; i+; return sum;题号:4662变量p为指针变量,若p=&a,下列说法不正确的是()。A、*(p+)=a+B、&*p=
21、&aC、(*p)+=a+D、*&a=a答案:A题号:6651C语言允许函数类型缺省定义,此时函数值隐含的类型是()。A、longB、floatC、intD、double答案:C题号:6993若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。A、1B、2.0C、2.5D、2答案:B题号:6988以下程序的输出结果是main() int a = 2, b =5; printf(“a=%d,b=%dn”,a, b); A、a=%2,b=%5B、a=%d,b=%dC、a=%d,b=%dD、a=2,b=5答案:C题号:5659若有定义int a10,*p=a;,则p+5表示A、元素a5的地址B、元素a6的地址C、元素a6的值D、元素a5的值答案:A题号:6490若有说明:int *p,m=5,n;以下正确的程序段是()。A、scanf(%d,&n);*p=n;B、p=&n;*p=m;C、p=&n;scanf(%d,*p)D、p=&n;scanf(%d,&p);答案:B题号:6073下列程序的输出结果为()。main()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(%fn,x);A、28.000000B、27.500000C、28.500000D、27.000000答案: