第1页共5页1一.选择题1.关于C程序的叙述,错误的说法是。(A)C程序总是从主函数开始执行(B)C程序中定义的第一个函数是主函数(C)在主函数中可以调用其他函数(D)一个C程序可以包括多个函数2.C语言的基本数据类型包括。(A)char(B)struct(c)string(D)typedef3.C语言关键字的是。(A)while(B)printf(C)main(D)FILE4.错误的C标识符是。(A)e2(B)name_(C)A_B(D)2e5.在下列运算符中,优先级最低的运算符是。(A)==(B)=(C)&&(D)+6.下列一维数组声明中,错误的是。(A)inta[]={1,2,3};(B)inta[5];(C)intn=5,a[n];(D)inta[5]={1,2,3};7.执行语句:printf(aaaa\nbbbb)输出的结果是。(A)aaaa\nbbbb(B)aaaabbbb(C)aaaa(D)不能输出bbbb8.要表示年龄(age)在18至25之间,正确的表达式是。(A)18=age=25(B)18=age&&age=25(C)18=age||age=25(D)18=ageandage=259.有定义inta,*p;下列赋值语句中,正确的是。(A)p=a;(B)p=&a;(C)p=*a;(D)*p=&a;10.若已经定义chara[10]={abcd},*p=a;则表达式*(p+1)的值是。(A)“abcd”(B)“bcd”(C)‘b’(D)语法错误11.若已经定义typedefstructstu{inta,b;}student;,则下列叙述中正确的是。(A)stu是结构变量(B)student是结构变量(C)student是结构类型(D)a和b是结构型变量12.设有定义inta[10],*p=a;下列对数组元素a[1]的引用中,错误的是。(A)p[1](B)*(++a)(C)*(++p)(D)*(a+1)13.以下叙述中,错误的是。(A)不同函数中可以使用相同的变量名(B)全局变量和局部变量可以同名第2页共5页2(C)形式参数是局部变量(D)main()函数中定义的变量在整个程序中都可使用14.设有函数定义:voidp(intx){printf(%d,x);}则正确的函数调用是。(A)p(3);(B)a=p(3);(C)printf(%d;p(3));(D)p(intx);15.设有如下定义:intx=2,y;intfun(int*a){return*a+1;}下列函数调用中,实际参数正确的是。(A)y=fun(x);(B)y=fun(&x);(C)y=fun(*x);(D)y=fun(a);17.设有宏定义#defineN3+2则语句printf(%d,N*N);的输出结果为。(A)11(B)25(C)10(D)以上都不对18.执行语句scanf(%d+%d,&a,&b);时,正确的键盘输入为。(A)3,5(B)35(C)3+5(D)3;519.执行if(a=b){a=b;b=a;}else{a++;++b;}语句后,正确的说法是。(A)当条件满足时变量a和b的值对调(B)当条件满足时变量a和b的值不变(B)当条件不满足时变量a和b的值各增加1(D)当条件不满足时变量b的值增加1,a不增加20.设已定义inta=3,b=4;执行if(a=b)printf(“aaa\n”)elseprintf(“bbb\n)语句后,正确的说法是。(C)输出aaa(B)输出bbb(D)编译时会出错(D)运行时会出错21.设有说明语句intx=1,y=2;则执行表达式x=y==3后,变量x的值为。(A)0(B)1(C)2(D)322.已定义floatf=1.2;执行语句printf(“%d\n”,f);后,正确的说法是。(A)输出1.2(B)输出1(C)语法错误(D)可以输出,但不是1.2和123.设a、b和c都是int型变量,且a=7,b=8,c=9,则表达式(a*b)/c+6-14%c的值为_____(A)6(B)7(C)8(D)9二.写出程序的运行结果//阅读程序“阅读1.gif”,把程序的运行结果写入文件“阅读1.txt”中。//阅读程序“阅读2.gif”,把程序的运行结果写入文件“阅读2.txt”中。//阅读程序“阅读3.gif”,把程序的运行结果写入文件“阅读3.txt”中。第3页共5页31.阅读1.gif#defineN5main(){inti,t,a[]={1,2,3,4,5};for(i=0;iN/2;i++){t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}for(i=0;iN;i++)printf(“%d\n”,a[i]);}543212.阅读2.gifinttest(intz){intx=2;staticinty=2;z+=++x;z+=++y;returnz;}voidmain(){printf(“%d\n”,test(1));printf(“%d\n”,test(2));}793.阅读3.gif#includestdio.hinta=1,b=1;f(intx,int*y){x=3;*y=3;}main(){intb=2,c=2,d=2;f(c,&d);printf(a=%d\n,a);printf(b=%d\n,b);第4页共5页4printf(c=%d\n,c);printf(d=%d\n,d);}三.程序调试题%12调试并运行程序“改错1.cpp”和“改错2.cpp”1.//改错1.cpp//求给定整数的各位数之和。如32761=3+2+7+6+1=19//程序修改完成后,必须运行本程序一次,并按要求输入数据#include//stdio.hvoidmain(){intk,sum=0;printf(输入一个正整数:);scanf(%d,&k);whilek//while(k){sum+=k/10;//sum+=k%10;k/=10;}printf(sum=%d\n,sum);2.//改错2.cpp//按以下格式输出各行整数。//1//14//149//14916//1491625//程序修改完成后,必须运行本程序一次#includestdio.hvoidmain(){inti,j//inti,j;for(i=1;i=5;i++){for(j=1;j=i;j--);//for(j=1;j=i;j++)printf(%d\t,j*j);printf(\n);}}第5页共5页5四.程序设计%24编写以下三个程序,并分别存入文件:“程序1.cpp”、“程序2.cpp”和“程序3.cpp”。1.输入圆的半径r,计算并输出其周长C和面积S。(c=2πr,s=πr2)2.商场进行打折销售,如顾客一次购买商品100元~999元按9折结算,如一次购买商品1000元以上,则按8折结算。已知某顾客的采购金额,求该顾客的实际支付金额。3.输出所有个位数和百位数之和为10的三位数整数(如:109,119,129……981,991),每行输出5个数,各个数之间用”\t”分隔。