1、高级语言程序设计(一)试题课程代码:00342一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目规定的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1可以作为自定义标记符的是()A2xBbreakCm-nDm_n2对的的变量定义是()Aunsigned long d=1000;Bfloat m1=m2=10.0;Cchar c1=A,c2=A;Ddouble x=0.618,x=3.14;3表达式的值为0的是()A5/5%5B52C!4D0x7&74设int a=1,b=2;,则执行a=b+2,a+,a+b;后a和b的值分别是()A1
2、和2B3和2C4和7D5和25设int a=2,b=3,c=4;,则表达式ab&bc|b的值是()A-1B0C1D26设int a=2,b=3,x,y;,则能对的执行的语句是()Ascanf(%d,%d,x-y,x+y);Bprintf(%dn,a%b); Cprintf(%fn,a+b);Dscanf(%d,%d,x,y);7设char s10= abcde,t = 12345; ,则s和t在内存中分派的字节数分别是()A6和5B6和6C10和5D10和68设int a=10,*p=&a; ,则执行printf(%dn,*p+a);的结果是()A10B20C30D409自定义函数中形式参数的
3、作用域是()A本文献B本函数Cmain 函数D整个程序10设int b 5=1,2,3,4,5,6,7;,则元素b12的值是()A0B2C6D711对函数而言,叙述对的的是()A函数中只能有一个return 语句B当函数的形参是数组时形实结合为值传递方式C程序中只能有一个main函数D无参函数的函数体内不能出现return语句12执行下列程序段后输出的结果是() int x,y,z=1; for(x=1,y=-1;xname,stu1.age);后输出结果是()ATom25BTom26CMary25DMary2615设typedef double DB;,则与DB u5;的等价形式是()A d
4、ouble db5;Bdouble DB5;Cdouble u;Ddouble u5;二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上对的答案。错填、不填均无分。16一个字符型变量所占内存的字节数是_。17写出公式相应的C语言表达式_。18执行语句printf(%sn, World0Wide0Web);后的输出结果是_。19设int a,b=5;,则执行表达式a=b-2=3后a的值是_。20设char s20= My;,则执行strcat(s, Sun! )后s的内容是_。21设float x=23.65;, 则执行语句printf (%dn,(int)(x+0.5)
5、;后输出结是_。22若定义函数char*fun( ),则该函数的返回值类型是_。23设int x=-9,y;,则执行y=x=0?x:-x;后y的值是_。24.若函数调用语句为f(a,b,f(a+b,a-b,b);,则函数f的参数个数是_。25设int a=10;,则执行语句a+=a-=a+a;后a 的值是_。三、程序分析题(本大题共4小题,每小题4分,共16分)阅读下列程序,请将输出结果写到各题右侧的空白处。26main() int a=1,b=2,c=3; if(a=c) if(b=c)printf(a=%dn,a); else printf(b=%dn,b); printf(c=%dn,c
6、); 27int f(int n) static int m=5; return +m+n; main() int i; for(i=0;i3;i+)printf(%5d,f(i); printf(n); 28.#define SIZE 4 main() int nSIZE=8,3,4,1; int i, j;for (i=0;iSIZE;i+)printf%d,ni; for(j=1;j=ni;j+)printf(*);printf(n); 29.int fm(int a,int b) if(b=1)return a; else return a+fm(a,b-1);main() print
7、f(%dn,fm(4,3);四、程序填充题(本大题共3小题,每小题6分,共18分) 请将下列程序横线处缺少的部分补上,使其能对的运营。30函数fun 用于计算数组各元素值的平方,主函数调用fun并输出各元素的值。 void fun(int num,int a ) int i; for (i=0;i_;i+)ai=ai*ai; /*第一空*/ main() int i,b5=1,2,3,4,5; fun(5,_); /*第二空*/ for (i=0;i5;i+)printf(%5d,_); /*第三空*/ printf(n); 31.从键盘输入一串字符(“#”作为结束标志),将其写入文本文献fi
8、le.dat 中保存。 #include #include main() char ch; FILE*fp; if(fp=fopen(file.dat, _)= =NULL) /*第一空*/ printf(Can not open filen);exit(0); ch=getchar(); while (ch!=# ) fputc(_,fp); /*第二空*/ ch=getchar(); fclose(_); /*第三空*/ 32从键盘输入x的值,根据以下公式计算并输出x和y 的值。#include#includemain()float x,y; scanf(%f,_); /*第一空*/ if
9、(x0)printf(input error!n); else switch (int)(x/2)case 0:y=x;_; /*第二空*/ case 1: case 2:y=x*x+1;break; case 3: case 4:y=_;break; /*第三空*/ default :y=1/(x*x+1);printf(x=%7.2f,y=%10.6fn,x,y);五、程序设计题(本大题共2小题,每小题8分,共16分)33.从键盘输入100个整数,计算并输出大于等于零的数的平均值(保存小数点后两位)。34(1)编写一个计算梯形面积的函数。函数头是:float area(float t,float b,float h) 其中变量t、b和h分别表达梯形的上底、下底和高。(2)编写主函数从键盘输入梯形的上底、下底和高的值,调用上述函数输出梯形面积 (保存小数点后两位)。