大学C语言期末考试题4及答案.pdf
大学大学 C C 语言期末考试题及答案语言期末考试题及答案(4)(4)1、定义了一维 int 型数组 a10后,下面错误的引用是_正确答案是:Ba0=1;a10=2;a0=5*2;a1=a2a0;2、设有定义:int a=1,p=a;float b=2.0;char c=A;,以下不合法的运算是()正确答案是:C*p+;a-;b+;c-;3、若有定义:int x10,*p=x;,则*(p+5)表示()正确答案是:B数组元素 x5的地址数组元素 x5的值数组元素 x6的地址数组元素 x6的值4、执行以下程序段后,y 的值是()。int a=1,3,5,7,9 int x=0,y=1,ptr;ptr=a1;while(!x)y+=*(ptr+x);x+;正确答案是:C124245、下面程序的运行结果是().#include void select(char*s)int i,j;char*t;t=s;for(i=0,j=0;*(t+i)!=0;i+)if(*(t+i)=0&*(t+i)=9)*(s+j)=(t+i);j+;(s+j)=0正确答案是:DHPw19 17HPw19 1719176、对于下面语句描述不正确的为_ struct Student unsigned long id;char name30;char class30;oStu1;正确答案是:Bstruct Student 为用户自定义类型Student 为用户自定义类型name 为结构体成员变量oStu1 为结构体变量名称7、已知:char*pstr=”abcd”,efgh,*p=pstr;那么*((p+1)+1)的值为_正确答案是:Cbcfg8、已知:int a5=0,1,2,3,4;int p=a;下面的表达式不可以用来表示 a3的是_正确答案是:C*(a+3)(p+3)p+3p39、strlen(A0B0C”)的结果为_正确答案是:B012310、定义了 int 型二维数组 a67后,数组元素 a34前的数组元素个数为_正确答案是:B2425281711、下面的描述错误的是_正确答案是:C函数可以有多个形式参数函数可以没有返回值函数内可以嵌套定义函数函数可以被其他函数调用12、下面关于全局变量的描述中,错误的是_正确答案是:C所有在函数体外定义的变量都是全局变量全局变量可以和局部变量同名称全局变量第一次被引用时,系统为其分配内存全局变量直到程序结束时才被释放13、以下关于循环的描述中,错误的是_正确答案是:D可以用 for 语句实现的循环一定可以用 while 语句实现可以用 while 语句实现的循环一定可以用 for 语句实现可以用 dowhile 语句实现的循环一定可以用 while 语句实现dowhile 语句与 while 语句的区别仅仅是关键字 while 的位置不同14、引用数组元素时,数组下标可以是_正确答案是:D整型常量整型变量整型表达式以上均可15、已知:int a5=0,1,2,3,4;int p=a;下面的表达式不能用来表示a3的是_正确答案是:C*(a+3)(p+3)*p+3p316、已知:char str10,p=str;下面的语句中正确的是_正确答案是:Bstr=ABC”;p=”ABC;str=”ABC”;p=ABC”;17、对于下面语句描述不正确的为_ struct Student unsigned long id;char name30;char calss30;oStu1;正确答案是:Bstruct Student 为用户自定义类型Student 为用户自定义类型name 为结构体成员变量oStu1 为结构体变量名称18、一个 c 程序的执行是从_正确答案是:A本程序的 main 函数开始,到 main 函数结束本程序文件的第一个函数开始,到本程序文件的最后一个函数结束本程序的 main 函数开始,到本程序文件的最后一个函数结束本程序文件的第一个函数开始,到本程序 main 函数结束19、若 x、i、j 和 k 都是 int 型变量,则计算下面表达式后,x 的值为 _x=(i=4,j=16,k=32)正确答案是:C416325220、若有定义:int a=7;float x=2。5,y=4。7;则表达式 x+a3*(int)(x+y)%2/4的值是_正确答案是:A2.5000002.7500003.5000000.00000021、以下叙述中正确的是()正确答案是:D输入项可以是一个实型常量,如 scanf(“%f”,3。5);只有格式控制,没有输入项也能正确输入数据到内存,例如:scanf(“a=%d,b=d);当输入实型数据时,格式控制部分可以规定小数位数,例如:scanf(“%4。2f”,f);当输入数据时,必须指明变量地址,例如:scanf(“%f,&f);22、以下程序输出结果是()。void main()int m=5;if(m+5)printf(“%dn”,m);else printf(“dn”,m-);正确答案是:B765423、当执行以下程序段时().x=1;do x=xx;while(!x);正确答案是:A循环体将执行一次循环体将执行两次循环体将执行无限次系统将提示有语法错误24、执行以下程序后,输出的结果是()。void main()int y=10;do y-;while(y);printf(“%dn”,y-);正确答案是:D118025、有如下程序 void main()int x=23;do printf(“d,x-);while(!x);该程序的执行结果是()正确答案是:B32123不输出任何内容陷入死循环26、有如下程序 void main()int y=3,x=3,z=1;printf(“%d%dn”,(+x,y+),z+2);运行该程序的输出结果是()正确答案是:D3 44 24 33 327、有如下程序 void main()int x=1,a=0,b=0;switch(x)case 0:a+;case 1:b+;case 2:a+;b+;printf(“a=%d,b=dn”,a,b);该程序的输出结果是()正确答案是:Aa=1,b=2a=1,b=1a=1,b=0a=2,b=228、若程序中定义了以下函数 double myadd(double a,double b)return(a+b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是正确答案是:Adouble myadd(double a,b);double myadd(double,double);double myadd(double b,double a);double myadd(double x,double y);29、有以下程序 int fun(int x,int y)if(xy)f(x,y);else if(yz)f(y,z);elsef(x,z);printf(“d,%d,dn,x,y,z);执行后输出结果是正确答案是:A1,2,33,1,21,33,12,3,131、以下列一维整型数组 a 的正确说明是_正确答案是:Dint a(10);int n=10,an;int n;scanf(”d”,&n);int an;#define SIZE 10 int aSIZE;32、若二维数组 a 有 m 列,则计算任一元素 aij在数组中位置的公式为_。(假设 a00位于数组的第 1 个位置上)正确答案是:Di*m+jjm+iim+j-1im+j+133、下面程序的运行结果是_.include”stdio.h main()chara=morning”,t;int i,j=0;for(i=1;i7;i+)if(ajai)j=i;t=aj;aj=a7;a7=aj;puts(a);正确答案是:Bmogninrmomorningmornin34、执行下面程序段的结果是_ main()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);正确答案是:Ba=1,b=1a=2,b=1a=1,b=0a=2,b=235、若有以下程序段:for(m=1;m=100;m+)scanf(“d,&y);if(y0)continue;printf(“%3d,m);正确的描述是_正确答案是:D当 y0 时整个循环结束当 y=0 时什么也不输出printf 函数永远也不执行最多允许输出 100 个非负整数36、.以下关于 switch 语句和 break 语句的描述正确的是_正确答案是:D在 switch 语句中必须使用 break 语句break 语句只能用于 switch 语句体中break 语句只能用于循环语句中在 switch 语句中可以使用 break 语句37、下列描述中,正确的是_正确答案是:A所有的输入/输出都是通过调用库函数处理的所有的输入/输出都是通过输入/输出语句实现的getchar 和 putchar 可以省略#include在输入/输出格式中的*表示跳过数据的含义38、若给定表达式(x)?(a+):(a),则表达式 x_正确答案是:C和(x=0)等价和(x!=1)等价和(x!=0)等价和(x=1)等价39、对于xyn102字符串的长度是_正确答案是:B76121340、下面说法不正确的是_正确答案是:DC 语言能编写操作系统C 语言是函数式的语言数据类型多样化书写格式自由、不规范