资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
08年专升本C单项选择题(30小题,每小题2分,共60分)1 以下不合法的C语言整型数是A. 79L(长整型) B. 0xab(16进制) C. 7e5(实型) D. 66(整型常数)2 已知int x=85; 执行完(double)x后,x的数据类型是A. int(强制类型转换不会改变变量的类型) B.float C.doubleD.不确定3 下面程序执行后的结果是void main() int x=108,y=017;(8进制) printf(%2d,%2d”,x,y); (%2d是10进制,如果长度不够,自动增加)A.10,01B.108,17C.08,17D.108,154 假设变量已经定义并赋值,则下列正确的赋值语句是A. int a=b=c=2;(书上有说明)B.i+=k-9=jC.c%=6;D.k=f=m;5 设整型变量x=3,则表达式x5?+x:-x的数值是A. 3B. 4C. 2D. 16 假设变量是整型,则表达式(a=3,b=6,+a,b+,a+b)的数值是A. 9B. 10C. 11(逗号表达式计算规则)D. 127 判断char变量c1是否为大写字母的正确表达式是A. A.=c1=A)&(c1=Z)C. A=c1 D. c1=A & c10)if(x3)y=3;else y=-1;printf(“%dn”,y);A. 1B. -1C. 不确定D. 311 若变量已定义,要将a和b的数值进行交换,下面选项不正确的是A. t=a;a=b;b=t;B. a=a+b,b=a-b,a=a-b; (逗号表达式)C. t=b;b=a;a=t;D. a=t;t=b;b=a;12 当a=1,b=0时下面程序的输出结果是switch(a)case 0: printf(“0n”);break;case 1: switch(b)case 0: printf(“1n”); (注意没有break)case 1: printf(“2n”);break;case 2: printf(“3n”);(注意花括号,没有break)case 2: printf(“4n”); (注意花括号)A. 1B. 1C. 1 D. 1 2 4 2 413 设有定义int a,*p=&a; 以下scanf语句能够正确地为变量a读入数据的是A. scanf(“%d”,p);B. scanf(“%d”,a);C. scanf(“%d”,&p);D. scanf(“%d”,*p);说明:int a,*p=&a; 等价于int a,*p; a是整型变量(2字节),p是指向整型变量的指针(4字节)p=&a; p的数值是a的地址。scanf(“%d”,p);相当于scanf(“%d”,&a);14 若有说明int a10;则a数组元素的正确引用是A. a10B. a3.5C. a(5)D. a10-1015 已知a为整型变量,与表达式a!=0真假值不相同的表达式是A. a0|a0B. aC. !a=0D. !a16 若有说明int a3=1,2,3,4,5,6,7,8,9,10;则a数组第一维的大小是A. 不确定B. 5C. 4D. 定义有误17 为了判断两个字符串s1和s2是否相等,应当使用A. if(s1=s2)B. if(s1=s2)C. if(strcmp(s1,s2)=0)D. if(strcpy(s1,s2)18 若有说明int a34=0;则以下正确的叙述是A. 只有a00可以得到初值0B. 此说明语句不正确C. 数组a中各元素都可以得到初值,但其值不一定是0D. 数组a中各元素都可以得到初值0说明:如果只写int a10; 则a中内容不确定。如果部分元素初始化,则剩余元素自动充019 设有定义:int a=2,b=3,c=4;则以下选项中数值为0的表达式是A. (!a=1)&(!b=0)B. a-bC. a&bD. a|(b+b)&(c-a)注意:(!a=1)不是a!=1,而是(!a)=1)20 已知int a,b=32767;a=b+1;则printf(“%d”,a)的结果是A. -1B. 65535C. 32768D. -3276821 以下程序的输出结果是void ff(int a,int b,int c)c=a+b;void main()int c=7;ff(c+1,c+,c);printf(“%d”,c);A. 16B. 8(注意参数顺序)C. 15D. 722 下面程序的输出结果是void main()char a20=a,b,c ,d,e,0;pritnf(“%sn”,a);pritnf(“%sn”,a+1);A. abcdeB. abcde0C. abcdeD. abcde0 bcde bcde0 cde cde%s 一直打印到0为止数组名是指向数组首元素的指针变量,a就是,但是a的数值不可修改a占4个字节,管两个字节。a+1不是真加1,而是加a管的字节数。23 下面程序的输出结果是main() int k=2; int k=1;printf(“%2d”,k);printf(“%2d”,k);A. 1 2B. 2 1C. 2 2 D. 1 1 24 当外部变量的作用域只限于本源程序单个文件时,应使用_加以说明。A. staticsB. externC. auto D. register25 有以下程序段,int n,t=2,s=0;scanf(“%d”,&n);do s=s+t; t=t-2;while(t!=n)为了使此程序段不陷入死循环,应从键盘输入的数据是A. 任意正奇数B. 任意负偶数C. 任意正偶数 D. 任意负奇数26 设函数fun定义为void fun(char ch,float x).则正确的调用语句是A. fun(“abc”,3.0)B. t=fun( D,16.5);C. fun( 65,2.8);D. fun(32,32);27 有以下程序#define f(x) (x*x)main()int i1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf(“%d, %dn”,i1,i2);程序的输出结果是A. 64,28B. 4,4C. 4,3 D. 64,64 i1=f(8)/f(4)=(8*8)/(4*4)=4;i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=3;28 以下程序的输出结果是main() struct cmplxint x; int y; cnum2=2,4,3,1; /*定义结构类型,数组,初始化*/ printf(“%dn”,cnum0.y/cnum0.x*cnum1.y); /*引用结构成员*/A. 0B. 2C. 3 D. 629 若用fopen函数打开一个新的二进制文件,该文件既能读也能写,打开的方式应该是A. “ab+”B. “wb+”C. “rb+” D. “ab”30 main()char c1=1,c2=2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入a,以下正确的叙述是A. 变量c1被赋值字符a,c2被赋值回车B. 程序等待用户输入第2个字符C. 变量c1被赋值字符a,c2仍然有原来的字符2D. 变量c1被赋值字符a,c2无确定值二、程序阅读题(共4小题,每小题5分,共20分)31 main()static int x=2,3,4;int s, i, *p;s=1;p=x;for(i=0;i3;i+)s*=*(p+i); *(x+i)与xi等价 *(p+i)与xi等价printf(“%dn”,s);打印结果 24数组名是指向数组首元素的指针变量,x就是,但是x的数值不可修改。不能写x+,但是可以写x+1。x占4个字节,管两个字节。x+1不是真加1,而是加x管的字节数。p的数值可以修改,因为p是纯粹的指针变量。可以写p+,也可以写p+1p占4个字节,管两个字节。p+1不是真加1,而是加p管的字节数。32 main()int i, j, x=0;for(i=0; i2; i+)x+;for(j=0;j=3;j+)if(j%2)continue;x+;printf(“x=%dn”,x);打印结果 x=633 main()char s=”ABCD”;*p;for(p=s;ps+4;p+)printf(“%sn”,p); %s 一直打印到0为止打印结果 ABCD BCD CD D34 int f(int b,int n)int i, r=1;for(i=1;i=n;i+=2)r=r*bi;return r;main()int x, a=1,2,3,4,5,6,7,8,9;x=f(a,6);printf(“x=%dn”,x);打印结果 x=48说明:int f(int b,int n)与int f(int *b,int n)等价注意:实参向形参“传值” ! 因此b=a ,n =6三、完善下列程序(33小题,每空2分,共20分)35 下面程序是输出两个字符串中对应相等的字符。main()char x=”pr
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号