第一篇:佛大c语言毕业前补考
46题18分,47题10分,48题12分。49-53填空题3分,红色字答案。其他1分。答案基本都是正确的,祝好运!
1.表示关系x<=y<=z的c语言表达式为(C)。A.(X<=Y<=Z)B.(X<=Y)AND(Y<=Z)C.(X<=Y)&&(Y<=Z)D.(X<=Y)&(Y<=Z)
2.若变量x和y均为整型,且x=y=1,则表达式y+=x+1的值为(A)。A.3 B.2 C.1 D.无正确结果
3.关于if后面一对圆括号中的表达式,叙述正确的是(D)。A.只能用关系表达式 B.只能用逻辑表达式
C.只能用关系表达式或逻辑表达式 D.可以使用任意合法的表达式
4.以下不正确的if语句是(D)。A.if(ab)&&(b>c)printf(“max=%d”,a);
5.feof(fp)函数是用来测试fp所指的文件是否结束,如果文件结束,则feof(fp)返回的值是(B):
A.0 B.1 C.NULL D.以上答案都不对
6.在对文件进行操作时,读文件的含义是(B): A.将内存中的信息存入磁盘 B.将磁盘中的信息输入到内存 C.将CPU中的信息存入磁盘 D.将磁盘中的信息输入到CPU
7.调用fopen函数打开一个文件失败时,函数返回的值是(C): A.-1 B.EOF C.NULL D.1
8.假设有两个字符数组a[80],b[80],则正确的输出语句是(D)。A.puts(a,b);B.printf(“%s %s”,a[],b[]);C.putchar(a,b);D.puts(a);puts(b);
9.对定义“int a[2];”的正确描述是(B)。A.定义一维数组a,包含a[1]和a[2]两个元素 B.定义一维数组a,包含a[0]和a[1]两个元素
C.定义一维数组a,包含a[0]、a[1]和a[2]三个元素 D.定义一维数组a,包含a(0)、a(1)和a(2)三个元素
10.以下运算符中,优先级最高的是(B)。A.!B.[ ] C.++ D.%
11.在引用数组元素时,其下标表达式的类型必须是(B)。A.字符型 B.整型
C.整型或字符型 D.整型常量
12.x为int型变量,执行以下语句后,x的值为(B)。x=10;x+=x-=x-x;A.10 B.20 C.30 D.40
13.若有输入语句“scanf(”%d,%d,%d“ ,&x,&y,&z);”,欲使x的值为10,y的值为20,z的值为30,则正确的输入应为(C): A.10 , 20 ,30〈回车〉 B.10 20 30〈回车〉 C.10,20,30〈回车〉
D.10〈回车〉20〈回车〉30〈回车〉
14.有以下程序: void main(){;;;} 程序运行后的结果是(D): A.编译时有警告错误 B.编译时有语法错误
C.编译没有错误,但是运行时出错 D.程序正常运行,但是无任何输出
15.C程序中,合法的关键字是(A): A.int B.integer C.Int D.Integer
16.在C程序中,不合法的浮点型常量是(A): A.3.4E2.5 B..456 C.0.820000 D.100.3e5
17.While 语句中循环结束的条件是while后面表达式的值是(A)。A.0 B.1 C.-1 D.非0
18.C语言中while和do-while循环的主要区别为(A)。A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句
19.有以下程序段: int t=0;while(t=1)t--;while循环执行的次数是(C)。A.一次也不执行 B.只执行一次 C.无限次 D.执行2次
20.执行循环语句“for(i=1;i<10;i++)a++;”后,变量i的值是(B)A.9 B.10
。C.11 D.不确定
21.已经有以下函数定义: fun(char a){ printf((“a=%cn”, a);} 该函数的返回值类型是(C)。A.void B.char C.int D.不确定
22.以下关于函数调用的描述中错误的是(B)。A.实参可以是常量、表达式或有确定值的变量 B.实参和形参共用同一内存单元 C.实参和形参的类型、个数必须一致
D.只有发生函数调用时,系统才为形参分别存储空间
23.以下正确的描述是(B)。
A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的调用均可以嵌套
24.以下叙述中正确的是(A)。
A.在C语言中静态变量在未赋值时,其值为0 B.在C语言中任何变量在未赋值时,其值为0 C.外部变量在程序的任何函数中均有效
D.函数中任何一个局部变量均无法保留上一次调用时的运行结果
25.设有以下宏定义: #define N 3 #define Y(n)((N+1)*n)则执行语句:z=2*(N+Y(5+1));后,z的值为(B): A.出错 B.48 C.54 D.42
27.下面程序运行时,如果从键盘上输入3,5<回车>,程序输出的结果是(C)。void main(void){ int a,b,*pa,*pb;pa=&a;pb=&b;scanf(“%d,%d”,pa,pb);*pa=a+b;*pb=a+b;printf(“a=%d,b=%dn”,a,b);} A.a=13,b=13 B.a=8,b=8 C.a=8,b=13 D.出错
26.设有定义:int n1=0, n2, p=&n2, q=&n1;,以下赋值语句中与n2=n1;语句等价的是(A)。A.*p=*q;B.&q=&p;C.p=&n1;D.p=q;
28.以下程序的运行结果是:(A)。void main(void){ struct num { int x;int y;}cnum[2]={1,3,2,6};printf(“%dn”,cnum[0].y/cnum[0].x*cnum[1].y);} A.18 B.12 C.6 D.1
30.有如下定义: struct date { int year,month,day;};struct person { char name[20];char sex;struct date birthday;} a;对结构体变量a的出生年份赋值时,下面正确的赋值语句是:(C)。A.a.year=2010;B.birthday.year=2010;C.a.birthday.year=2010;D.year=2010;
29.若定义了
struct num { int a;int b;}d[3] ={{1,4},{2,5},{6,7}};则执行printf(“%dn”,d[2].a* d[2].b/d[1].b);语句的输出结果是:(C)。A.2 B.2.5 C.8 D.8.4
31.sum,average,_total,li_ling,1A都是合法的标识符。(×,第一个必须为字母或下划线)
32.在程序当中有两条语句:int i=0737;printf(“i=%d”,i);
显示器上出现的结果为 i=737(错,荣荣测试为479,书上说以0开头的数是八进制)
33.语句:printf(“%X”,12);的输出结果是C。(对)
34.宏替换不占用运行时间,只是简单的字符替换。(对)
35.struct stu { int num;‘ char name[10];float score;} struct stu a;以上结构体变量的定义是正确的。F(找不到)
36.结构体变量和共用体变量都可以在定义的时候初始化。(错)
37.若用数组名作为函数调用的实参,传递给形参是数组首元素的地址值。T
38.在C语言中简单变量作为函数参数时,实参和与其对应的形参共占一个存储单元。(错,形参是虚拟的)
39.在C语言中,对文件读/写之前,该文件必须已经存在,否则会出错。F
40.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,只能调用函数rewind。T
41.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为4。(错)
42.若已知a=10,b=20,则表达式!a*b的结果为1。(错)43.设有int x=11;则表达式(x++*1/3)的值是3。(对)44.有一个函数定义如下: fun(int x){ int p;if(x==0||x==1)return(3);p=x-fun(x-2);return p;} main()函数中代码如下: printf(“%dn”,fun(10));程序输出结果是7。(错)
45.用do-while语句构成循环时,在while后的表达式为0时结束循环。(对)46编写判断一个数是否为素数的函数fun(),并在主函数调用该函数输出200以内的所有素数。
#include
if(fun(x))
printf(“%5d”,x);
printf(“n”);} int fun(int m){ int i,n,flag=1;n=sqrt(m);for(i=2;i<=n;i++)
if(m%i==0)
flag=0;
return flag;}
47.打开c:CAAData47中的源程序文件pg105.cpp,补充程序使得程序运行时完成以下功能:输入x的值,按照函数:
x(x<1)y= 2x+7(1<=x<10)3x-5(x>=10)
输出y的值。并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。#include
48.打开c:CAAData48中的源程序文件pg207.cpp,补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),使得程序运行时完成以下功能:请在主函数中将二维数组的9个元素初始化为以下值: 8 6 4 2 1 9 7 5 3
#include
49.下面程序输入一个字符串,输出其中所出现过的大写英文字母.如输入字符串 “UKSDYckjsjsjJSJJD”;应输出“UKSDYJ”。按程序功能填空。#include