1.下列字符序列中, 是 C 语言保留字的是(B)。 A、 include B、 sizeof C、 sqrt D、 scanf 2.以下叙述正确的是(B)。 A、 在对一个 C 程序进行编译的过程中, 可发现注释中的拼写错误 B、 C 语言本身没有输入输出语句 C、 在 C 程序中, main 函数必须位于程序的最前面 D、 C 程序的每行中只能写一条语句 3.C 语言中, double 类型数据占(D)。 A、 4 个字节 B、 1 个字节 C、 2 个字节 D、 8 个字节 4.以下程序的输出结果是 D #include “math.h” main() { double a = -3.0, b = 2; printf(“%3.0f %3.0f\n”, pow(b,fabs(a)), pow(fabs(a), b) ); } A、 以上三个都不对 B、 6 6 C、 9 8 D、 8 9 5.以下的选择中, 正确的赋值语句是(C)。 A、 j++ B、 a=1,b=2 C、 a=b=5; D、 y=int(x) 6.C 语言中,switch 后的括号内表达式的值可以是 C A、 只能为整型和字符型 B、 只能为整型 C、 任何类型 D、 只能为整型,字符型,枚举型 7.以下描述中正确的是(A)。 A、 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零("假")的操作 B、 由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 C、 do-while 循环中,根据情况可以省略 while D、 do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写分号 8.下列数组说明中, 正确的是(C)。 A、 int array[][]; B、 int array[3][]; C、 int array[][4]; D、 int array[][][5]; 9.若有说明:int a[10];则对 a 数组元素的正确引用是(C)。 A、 a(5) B、 a[3,5] C、 a[10-10] D、 a[10] 10.C 语言规定, 函数返回值的类型是由(D)。 A、 调用该函数时的主调函数类型所决定 B、 return 语句中的表达式类型所决定 C、 调用该函数时系统临时决定 D、 在定义该函数时所指定的函数类型所决定 11.在 C 语言的函数中, 下列正确的说法是(D)。 A、 数组名不能作形参 B、 形参必须是变量名 C、 必须有形参 D、 可以有也可以没有形参 12.两个指针变量不可以( D)。 A、 比较 B、 指向同一地址 C、 相减 D、 相加 13.若有定义: char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为(D)。 A、 p4=&ch;*p4=getchar(); B、 p2=(char *)malloc(1);scanf("%c",p2); C、 p1=&ch; scanf("%c",p1); D、 *p3=getchar(); 14.使用共用体变量, 不可以(D)。 A、 节省存储空间 B、 进行动态管理 C、 简化程序设计 D、 同时访问所有成员 15.fwrite 函数的一般调用形式是(C)。 A、 fwrite(buffer,count,size,fp); B、 fwrite(fp,count,size,buffer); C、 fwrite(buffer,size,count,fp); D、 fwrite(fp,size,count,buffer); 1.int a=1,b=2,c=3; 执行语句 a=b=c;后 a 的值是_3____. 2.根据 C 语言运算符的优先顺序和结合性, 按从先到后的顺序写出以下表达式中, 运算符 “+”、“>”、“*”、“&&”、“! =”、“||”、“!” 和“/” 的先后顺序: __+___、 _*____、 ___>__、 __!=___、 __&&___、 __/___、 _!____、 ____||_ (a+b) >c*2&&b! =5||!(1/2) 3.程序段 int k=10; while(k=0) k=k-1;循环体语句执行__0___次.. 4.一个数如果恰好等于它的因子之和, 这个数就称为“完数”。 例如 6 的因子为 1、 2、 3, 而6=1+2+3, 因此 6 是“完数”。 以下程序是求 1~1000 之间的所有完数, 请填空, 以完善程序功能。 #define M 100 main() { int a, b, x[M], sum, cnt = 0; for(a = 1; a <= 1000; a++) { _sum=0____ b = 1; while(b=x-1<=y-2 的值是___1__. 10.表达式 18 && 53 的值是___1__. 功能: 在键盘上输入一个 3 行 3 列矩阵的各个元素的值(值 为整数), 然后输出主对角线元素的平方和。 fun() 函数的功能为求对角线元素的和。 程序中如果用到 循环, 必须使用 for 循环。 #include "stdio.h" void TestFunc(); int fun(int a[3][3]) { /**********Begin**********/ int sum; int i; sum=0; for(i=0;i<3;i++) sum=sum+a[i][i]*a[i][i]; return sum; /********** End **********/ } void main() { int i,j,s,a[3][3]; for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } s=fun(a); printf("Sum=%d\n",s); TestFunc(); } void TestFunc() { FILE *IN,*OUT; int m; int n; int i[3][3]; int o; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write File Error"); } for(m=0;m<3;m++) { for(n=0;n<3;n++) fscanf(IN,"%d",&i[m][n]); } o=fun(i); { fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 功能: 将一个正整数分解质因数。 例如: 输入 90,打印出 90=2*3*3*5 #include "stdio.h" void main() { int n,i; printf("\nplease input a number:\n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) { /**********ERROR**********/ while(n==i) 【while(n!=i)】 { /**********ERROR**********/ if(n%i==1) { printf("%d*",i); 【if(n%i==0) if (!(n%i))】 /**********ERROR**********/ n=n%i; 【n=n/i;】 } else break; } } printf("%d",n); } 功能: 已知一个数列, 它的头两项分别是 0 和 1, 从第三项开始以 后的每项都是其前两项之和。 编程打印此数列, 直到某项的 值超过 200 为止。 #include void main() { int i,f1=0,f2=1; /**********FILL**********/ ___for_(i=1; ;i++) { printf("%5d",f1); /**********FILL**********/ if(f1>___200__) break; printf("%5d",f2); if(f2>200) break; if(i%2==0) printf("\n"); f1+=f2; /**********FILL**********/ f2+=__f1___; } printf("\n"); }