专升本C语言历年考试题及答案2.doc
专升本C语言历年考试题及答案专升本C语言历年考试题及答案一、单项选择题1。 C语言源程序文件经过C编译程序编译连接之后生成一个后缀为_C_的文件。 A、”。c” B、“。obj” C、“。exe” D、“。bas"2。 以下选项中不正确的整型常量是_C_。 A、 12L B、 -10 C、 1,900 D、 123U3. 表达式_C_的值是0.A、3%5 B、3/5。0 C、3/5 D、354. 表达式 !(x0|y0) 等价于_D_。A、!x>0|!y0 B、!(x>0)|!(y0) C、!x>0&!y0 D、!(x>0)&&!(y>0)5. 若变量已正确定义并赋值,表达式_D_不符合C语言语法.A、4&3 B、+a C、a=b=5 D、int(3.14)6。 若变量已正确定义,执行语句scanf("%d%dd ",&k1,&k2,k3);时,_B_是正确的输入。 A、2030,40 B、20 30 40 C、20, 30 40 D、20, 30,407。 执行语句 printf(" _D_”, 2); 将得到出错信息.A、%d B、%o C、x D、f8. 设变量定义为“int s ="hellonworldn”;”,则数组s中有_B_个元素.A、12 B、13 C、14 D、159。 设变量定义为“int a2=1,3, p=a0+1;”,则*p的值是_B_.A、2 B、3 C、4 D、&a0+110。 若变量已正确定义并赋值,表达式 -k+ 等价于_A_。A、(k+) B、(-k)+ C、(k+1) D、(+k)11。 在C 语言程序中,在函数内部定义的变量称为_D_。 A、全局变量 B、全程变量 C、外部变量 D、内部变量12. 若x是整型变量,表达式 (x=10.0/4。0) 的值是_D_ 。A、2.5 B、 2.0 C、 3 D、213。 对于以下的变量定义,表达式_A_是正确的。 struct node char s10; int k; p4;A、p->k=2 B、p0。s=“abc” C、p0k=2 D、p->s=a14。 下列运算符中,优先级从高到低依次为_D_.A、&,!, B、,! C、&&,,! D、 !,,|15。 下列程序段的输出结果是_B_。 int *p, *q, k = 1, j=10 ; p=j; q = k ; p = q ; (*p)+;printf(”d”,q);A、1 B、2 C、10 D、1116 以下各选项企图说明一种新的类型名,其中正确的是水量 (C)A) typedef v1 int; B) typedef v2=int;C) typedefv1 int v3; D) typedef v4: int;17。 以下选项中,非法的字符常量是 (C)A) t' B) 17 C)“n” D) xaa18. 以下程序的输出结果是 (C)main() int i, a10;for(i=9;i>=0;i) ai=10-i;printf(“ddd”,a2,a5,a8);A) 258 B) 741 C) 852 D) 36919。 以下程序的输出结果是(B)main() char st20= “hello0t”;printf(d %d n”,strlen(st),sizeof(st);A) 9 9 B) 5 20 C) 13 20 D) 20 2020. 以下程序的输出结果是 (D)main() int a, b;for(a=1, b=1; a<=100; a+) if(b=10) break;if (b3= =1) b+=3; continue; printf(“%dn”,a);A) 101 B) 6 C) 5 D) 421. 以下程序的输出结果是 (D) union myun struct int x, y, z; u;int k; a;main() a.u.x=4; a.u。y=5; a.u。z=6;a.k=0;printf(%dn",a。u。x);A) 4 B) 5 C) 6 D) 022。 以下程序段的输出结果是 (A)char s=”141141abct"printf ("%dn",strlen(s);A) 9 B) 12 C) 13 D) 1423. 以下程序的输出结果是 (B)main() char ch35="AAAA",”BBB”,"CC”;printf(""%s"n”,ch1);A) ”AAAA" B) ”BBB" C) ”BBBCC” D) ”CC"24。 不合法的main函数命令行参数表示形式是 (C)A) main(int a,char *c) B) main(int arc,char arv)C) main(int argc,char *argv) D) main(int argv,char *argc)25。 有以下程序main() char *s=”one","two",”three”,*p; p=s1; printf("c,%sn",*(p+1),s0);执行后输出结果是 (C)A) n,two B) t,one C)w,one D) o,two26. 设有如下说明typedef struct int n; char c; double x;STD;则以下选项中,能正确定义结构体数组并赋初值的语句是 (A)A) STD tt2=1,A,62,2, B,75;B) STD tt2=1,"A”,62,2, ”B",75;C) struct tt2=1,A',2, 'B';D)structtt2=1,"A”,62.5,2, ”B”,75.0;27。 若变量c为char类型,则能正确判断出c为小写字母的表达式是( D ).A) 'a<=c= 'z B) (c= 'a')(c= z')C) (a<=c)and ('z'>=c) D) (c>= a)&&(c<= 'z)二、填空题 1. 设ch是字符型变量,判断ch为英文字母的表达式是: (ch>=A'&ch,='Z)|(ch>=a&ch='z) _。2. 计算下列分段函数的 if 语句是_ if(x0)y=1;else if(x=0)y=0;else y=1;_。 1 x>0y= 0 x=0 1 x<03。 表达式 !!5的值是_1_。4. 下列程序段的输出结果是_12_。printf(”%xn", (0x19 1) 0x17); 5. 下列程序段的输出结果是_ k=4 s=6_。 int k, s; for(k=0, s=0; k<10; k+) if (sk) break ; else s += k; printf("k=d s=%d", k, s);6。 下列程序段的输出结果是_15_。 #define MIN(x,y) (x)(y)?(x) : (y) printf("%d",10MIN(10,15));7。 下列程序在运行时可能会出错,原因是_指针变量s未赋初值_。 # include void main( ) char *s; gets(s); puts(s);8. 下列程序段的输出是_6 0_。# include int f(int m) static int k=0; int s=0; for(; k<=m; k+) s+; return s;void main( ) int s1, s2; s1=f(5); s2=f(3); printf(”d %dn", s1, s2);9. 下列程序段的输出结果是_ fgh _. char *st =”abcd”,"efgh”,”ijkl","mnop"printf(”%s”, (st+1)+1);10。 用typedef定义一个含10个元素的整型数组ARR。 typedef int ARR10; 11以下程序调用findmax函数返回数组中的最大值,请填空.findmax(int a,int n) int *p,*s;for(p=a,s=a; paif ( *p>*s ) s=p;return(*s);main() int x5=12,21,13,6,18;printf("%dn”,findmax(x,5); 三、程序(段)填空题1设变量x, y, z已正确定义和赋值,请仔细阅读程序段,然后在程序段中填入正确的内容,使程序段和程序段有相同的功能。程序段A 程序段B x=x+y;y=xy;x=xy;z=x+y; z=x ; x=y ;y=z; z=x+y; 2请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。char f1(char s , char t) int k; for(k=0; tk!= ; k+) sk=tk; sk=' ' return s;7