C语言选择题复习精选_第1页
C语言选择题复习精选_第2页
C语言选择题复习精选_第3页
C语言选择题复习精选_第4页
C语言选择题复习精选_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、选择题复习1表达式“(a=4*5, b=a*2), b-a, a+=2”的值是(C)。A2B20 C22D422以下是一个自定义函数的头部,其中正确的是(C )。Aint fun(int a , b)Bint fun(int a , int a)Cint fun(int*a, int b)Dint fun(char a , int b)3以下数组声明语句中正确的是(D )。Aint n, an;Bint a ;Cint a23=l,2,3;Dint a 3=l,2,3;4已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70 000正确地 保存在一个变量a中,该变量

2、声明语句应当是(B )。Aint a;Blong int a;Cunsigned int a;Dunsigned int a;5以下声明语句中,用于声明一个行指针变量的是(C )。Aint *p(int);Bint *p;Cint (*p)3;Dint (*p)(int);6在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中(A )不能用做该变量的名字。 #include <math.h> int y; main( ) int a=1; fun(a); int fun(int x) _; *int型变量声明语句位置* *若干执行语句* AxByCfabsDfun7如

3、有语句“int x,y=0,z,*p3; p0=&x; p1=&y; p2=&z;”,以下表达式中有语法错误的是(B )。Ay+Bp+C*+p0D(*p0)+8设有声明语句“int a33=1,2,3,4,5,6,7,8,9;”,以下语句中除(D )外均能输出a12的值。Aprintf("d ",*(*(a+1)+2)Bprintf("%d ",*(a20-1);Cprintf("%d ",*(a1+2);Dprintf("%d ",*(a+1)2);9已知有声明语句int x=8,则下列表

4、达式中,值为2的是(B )。Ax+=x-=xBx% = x-2Cx>8?x=0:x+Dx= x + x10以下关于函数的叙述中正确的是(D )。 A在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值 B在函数体中至少必须有一个return语句 C在函数体中可以定义另一个函数 D在函数体中可以调用函数自身11若有声明语句“int a10, b33;”,则以下对数组元素赋值的操作中,不会出现越界访问的是(D )。Aa-1=0Ba10=0Cb30=0Db02=012若有声明语句“char ch=a, *pc=&ch;”,以下语句中有语法错误的是(C )。A(*pc)

5、+;Bch+= -a + A;Ctoupper(ch)=ch;Dch+;13已知有声明语句“int a5=1, 2, 3, 4, 5, *p, i;”,以下语句中(C )不能正确输出a数组全部元素的值。 Afor(p=a, i=0;i<5;i+)printf("%d",*(p+i); Bfor(p=a;p<a+5;p+)printf("%d", *p); Cfor(p=a, i=0;p<a+5;p+, i+)printf("%d", pi); Dfor(p=a;p<a+5;p+)printf("%d&

6、quot;, p0);14已知某程序如下: float p=1.5; #define p 2.5main( ) printf("%f", p); 则main函数中标识符p代表的操作数是(D )。Afloat型变量 Bdouble型变量Cfloat型常量 Ddouble型常量15已有声明“int S23”,以下选项中(A )正确地引用了数组S中的基本元素。AS1>2!1BS20CS1DS16逻辑“异或”运算可描述为“a xor b”,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。以下表达式中(D )可以正确

7、表示逻辑“异或”运算。Aa | bBa && bC(a&&b)&&!(a | b)D(a | b)&&!(a&&b)17若有声明“int a5,*b=a,(*c)3,*d3;”,则在以下表达式中有语法错误的是(C )。Aa0=0Bb0=0Cc0=0Dd0=018若有声明: int k, a, b; unsigned long y=5; double x=1.23; 则以下表达式中正确的是(D )。Ax%(-5)Bx=y6Ck=(a=1,b=2,&a + &b)Da+=a- = (b=2) * (a

8、= 3)19一个用C语言编写的源程序中,(A )是必不可少的。A取名为main的函数定义B#include<stdio.h>C变量声明D注释20以下声明中正确的是(D )。Aint n=2, an=10;Bint n=10, *p2=&n;Cint n=10, a2=n;Dint a22=10, (*p)2=a+1;21、若有函数fun的定义为 void fun()static int a=1; 则下列叙述中不正确的是(B )。 A在每次调用fun函数时,变量a的值是上次调用结束时a的值 B在fun函数之外,可以用变量名a直接引用a的值 C在其他函数中,可以出现声明doub

9、le a=2.5; Dfun函数的形式参数不能取名为a22以下单目运算符均只需要一个操作数,其中要求操作数的类型只能是指针型的是(D )。A&B+C!D*23已知有声明“int good=l; ”,若要使得表达式“p="good"+good”无语法错误(包括警告错误),p应当声明为(B )。Achar p;Bchar*p;Cint p;Dint *p;24以下全局变量声明中正确的是(D )。Aauto int i=1;Bfloat a=1, b=0.5, c=a+b;Cchar for=1;Dstatic char ch;25若已有声明“double a23=1,

10、2, 3, 4, 5, 6;”,则下列表达式中不能正确引用a11值的是(C )。A*(a0+4)B*(a1+1)C*(*(a+3)+1)D*(*a+4)26、已有声明“int a5;”,以下表达式中不能正确取得a1指针的是(B )。A&a1B+aC&a0+1Da+l27以下关于语句的说法中正确的是(A )。 Ado-while语句的循环体至少会被执行1次 Bwhile语句的循环体至少会被执行1次 Cfor语句的循环体至少会被执行1次 D在C语言中只能用do、do-while或for语句实现循环结构28已知函数f的定义如下: void f(void) printf("T

11、hats great! "); 则调用f函数的正确形式是(B )。Af;Bf();Cf(void);Df(1);29以下程序在编译时在第三行报错“Redeclaration of ain function d”,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中不能用来替换变量名a的是(A )。 int b;void d(int a) int f; double a=1; printf("%d",a);main( )int e=1;d(e); AfBeCdDb30、以下语句中不包含关键字的是(A )。 Ax=sqrt(2);Bwhile(x!=0)x-;C

12、if(x<0)x=-x;Dreturn x;31在main函数体内部和外部均允许出现的实体是(B )。A预处理命令 B语句 C另一函数的定义 D函数形式参数声明32、已知有声明int x=2:,以下表达式中值不等于8的是(D )。Ax+=2,x*2Bx+=x*=XC(x+7)/2*(x+1)%2+1)Dx*7.2/x+133、执行以下程序时, #include<stdio.h> main() int a; float b; scanf("%3d%f",&a,&b);printf("%dt%f",ab); 若要求变量a和b

13、分别从键盘获得输入值45和678.0,则以下四种输入数据中(代表“空格”键,<CR>代表“回车”键),不能达到该要求的输入数据是(C )。A45678<CR>B45<CR>678<CR>C45,678<CR>D045678<CR>34下列程序段中,能将变量x、y中值较大的数保存到变量a、值较小的数保存到变量b的程序段是(C )。 Aif(x>y)a=x;b=y;else a=y;b=x; Bif(x>y)a=x;b=y;else a=y;b=x; Cif(x>y)a=x;b=y;elsea=y;b=x;

14、Dif(x>y)a=x;b=y;else(x<y)a=y;b=x;35已知函数fun的定义如下: void fun(int x, int y) int k; for(k=0;k<y;k+) xk+=y; 若main函数中有声明int a10=10及调用fun函数的语句,则正确的fun函数调用形式是(C )。Afun(a ,a0);Bfun(a0,a0);Cfun(&a0,a0);Dfun(a0,&a0);36设有下列程序段: static char b=2;void Y ( ) static float d=4;int a=1;void X ( ) int c

15、=3; 关于程序段中各变量的属性,以下叙述中错误的是(D )。 Aa是全局变量,函数X可以访问,函数Y不能访问 Bb是全局变量,函数X和函数Y都可以访问 Cc是动态变量,函数X可访问,函数Y不可访问 Dd是静态变量,函数X和函数Y都可以访问37、若有如下声明和语句: int t33, *pt3, k; for(k=0; k<3;k+) ptk=&tk0; 则表达式*(*(pt+1)+2)所引用的是(C )。At20B&t20Ct12D&t1238设有声明float a=1.23456; int i;,欲将a中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该

16、功能的表达式是(A )。Ai=a*100+0.5, a=i/1000Ba=(a*100+0.5)/100.0Ca=(int)a*100+0.5)/l00.0Da=(a/100+0.5)/100.039若已有声明“int x=4, y=3;”,则表达式x < y ? x+: y+的值是(B )。A2B3C4D540设有变量声明“char c;”, 执行“for (; c=(getchar( ) !=n) ; )printf("%c", c); ”时,从键盘上输入“ABCDEFG”之后,输出的结果是(C )。AABCDEFGBAABBCCDDEEFFGGC非字母数字字符D

17、语句不能执行41以下表示数学式“a<b<c”的逻辑表达式中,错误的是(A )。Aa<b<cBa<b&&b<cC!(a>=b)&&!(b>=c)D!(a>=b|b>=c)42下面关于循环语句for、while、do_while的叙述中,正确的是(D )。 A三种循环语句的循环体都必须放入一对花括号中 B三种循环语句中都可以缺省循环终止条件表达式 C三种循环语句的循环体都至少被无条件地执行一次 D三种循环语句都可能出现无穷循环43、若有声明“int a=l, 2, 3, 4, *p, i;”,则以下程序段中

18、不能输出13的是(B )。Afor(i=0;i<4;i+=2)printf("d", ai);Bfor(p=0;p<4;p+=2)printf("d", ap);Cfor(p=a;p<a+4;p+=2)printf("d", *p);Dfor(p=a, i=0; i<4;i+=2)printf("d", pi);44、下列叙述中正确的是(C )。 Amain函数必须出现在其他函数之前 Bmain函数中至少必须有一条语句 CC程序总是从main函数的第一条语句开始执行 DC程序总是在执行完ma

19、in函数的最后一条语句后结束45已知有结构定义和变量声明如下:struct studentchar name20;int score;struct student *h;stu, *p; int *q;以下选项中错误的是(C )。Ap=&stu;Bq=&stu.score;Cscanf("%s%d", &stu);Dstu.h=p;46、设有声明“int p10=1, 2, i=0;”,以下语句中与“pi=pi+1, i+;”等价的是(D )。Api=pi+1;Bp+i=pi;Cp+i=pi+1;Di+, pi-1=pi;47设有结构定义及变量声明如

20、下:struct productchar5;floadt price;y4= "100", 100;以下表达式中错误的是(D )。A(*y).code0=2;By0.code0=2Cy->price=10;D(*y)->price=10;48若有声明“int a=3, b=4, c=5;”,则下列表达式中值为0的是(D )。Aa&&b=0Ba<=bCa|b&&cD!(!c|1)49已知有声明“long x, y;”,且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数

21、字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是(C )。Ay=x/(10*(n-1)By=x%(10*(n-1)Cy=x%(long)pow(10, n-1)Dy=x%(10(n-1)50已知有声明“int x, y;”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则以下程序段中错误的是(C )。 Aif(x>=0)y=1; else y=-1;By=x>=0?1:01;Cswitch() case x>=0:y=1; break;default:y=-1;Dswitch(x-abs(x) case 0:y=1; break;de

22、fault:y=-1;51、已知有声明“int m=5,4,3,2,1,i=0;”,下列对m数组元素的引用中,错误的是(B )。 Am+iBm5Cm2*2=0Dmm452、若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是(D )。A实参和其对应的形参占用同一存储单元B形参不占用存储单元C同名的实参和形参占用同一存储单元D形参和实参占用不同的存储单元53C语言规定,在一个源程序中main函数的位置(D )。A必须在最开始B必须在最后C必须在预处理命令的后面D可以在其他函数之前或之后54、已知有声明“int a=3, b=4, c;”,则执行语句“c=1/2*(a+b);”后,c

23、的值是(A )。A0B3C3.5D455、已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是(D )。Ac=tolower(c)Bc=c+32Cc=c-A+aDc= (c +A)%26-a56已知有定义和声明:struct studentint no;char name20;struct int year, month, day;birth;s;若要求将日期“1989年11月12日”保存到变量s的birth成员中,则能实现这一功能的程序段是(D )。Ayear=1989;

24、 month=11; day=12;Bs.year=1989;s.month=11; s.day=12;Cbirth.year=1989; birth.month=11; birth.day=12;Ds.birth.year=1989; s.birth.month=11; s.birth.day=12;57、执行以下程序后的结果是(C )。#include <stdio.h>void main() int x=3;Doprintf("%dt", x=x-3);while(!x);A输出一个数:0B输出一个数:3C输出两个数:0和-3D无限循环,反复输出数58设有

25、声明“int a=4, b=3, c=5;”,以下4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是(C )。Aif(a>b) c=a, a=b, b=c;Bif(a>b) c=a, a=b, b=c;Cif(a>b) c=a; a=b; b=c;Dif(a>b) c=a; a=b; b=c;59、以下关于if语句和switch语句的叙述中错误的是(D )。Aif语句和switch语句都可以实现算法的选择结构Bif语句和switch语句都能实现多路(两路以上)选择Cif语句可以嵌套使用Dswitch语句不能嵌套使用60若有声明语句“char s110=0

26、,s210= "books"”,则能将字符串"books"赋给数组s1保存的表达式是(D )。As1= "books"Bstrcpy(s2, s1);Cs1=s2;Dstrcat(sl, s2);61已知A盘根目录下的一个文本数据文件data.dat中存储了100个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用一次fopen函数,已有声明语句“FILE *fp;”,则fopen函数的正确调用形式是(A )。Afp=fopen("a:data.dat","r+");Bfp=fo

27、pen("a:data.dat ","w+");Cfp=fopen("a:data.dat","a+ ");Dfp=fopen("a:data.dat","w ");62数组和链表都可以用于存储一组彼此有关联的数据,以下说法中不正确的是(B )。 A数组占用一块连续的存储区域,链表可能占用若干块不连续的存储区域 B数组和链表所占用的存储区域均不能在程序运行期间动态地分配 C数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D数组的长度是固定的,链表的长度是不固定的

28、63设有定义和声明语句:typedef struct dtype int a; struct dtype *b; node; static node x3=5, &x1, 7, &x2, 9, 0, *prt=&x0;下列选项中,表达式值不为5的是(A )。Ax1.b->a-2BPtr->b->a-2C(ptr+1)->a-2Dptr->a64在以下程序中,需要在main函数之后定义一个函数,以下选项中(D )可以用做该函数的名字。 #define P 3.14 int y; main( ) int a = 1; 函数名(a); *若干执行

29、语句*int函数名(int x)return x*x;AmainByCPDprint65已知有语句“FILE *fp;int x=123;fp =fopen("out.dat", "w");”,如果需要将变量x的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中正确的是(B )。Afprintf("%d", x);Bfprintf(fp, "%d", x);Cfprinff("%d", x, fp);Dfprintf("out.dat", "%d&

30、quot;, x);66已知有声明语句“char s110= "12345", s210= "abcde", s310;”,以下语句中能将s1中存储的字符串和s2中存储的字符串正确交换的是(D )。 As3=s1,s1= s2, s2 = s3; Bs30 = s10,s10 = s20,s20=s30; Cstrcpy(s30,s10),strcpy(s10,s20),strcpy(s20,s30); Dstrcpy(s3,s1), strcpy(sl, s2), strcpy(s2, s3);67在定义任何一个函数时,下列选项中(B )是不可缺少的。

31、A函数名之前的数据类型B函数名之后的一对圆括号C形式参数声明D函数体中的语句68已有数据类型定义和变量声明如下: struct person int num; char name20, sex; struct int class; char prof20;in; a=20,"Li ning",M, 5,"computer", *p= & a; 下列语句中正确的是(B )。Aprintf("%s", a->nname);Bprintf("%s", p->inprof);Cprintf("

32、%s", *);Dprintf("%c", p->in->prof);69若有以下程序: int x; int f(int y) return标识符; # include <stdio.h> int w; main( ) int z=2;f(z); 则在函数f中return语句后允许出现的标识符是(B )。Ax或wBx或yCz或wDNULL70以下跳转语句中,只有(C )可以选择不唯一的跳转目的地。Acontinue; Bbreak; Cgoto标识符; Dreturn;71在缺省情况下,标准C的编译系统中预定义的标准输出流st

33、dout直接连接的设备是(D )。A软盘B硬盘C键盘D显示器72已有枚举类型定义:“enum letterA, B, C=7, D, E;”,以下表达式中除(D )外,其他表达式的机内值均等于10。Axb-1BB+EC010+2D0xf-373已知数据类型定义和变量声明如下: struct sk int a; float b;data2, *p; 若有p=data,则以下对data0中成员a的引用中错误的是(A )。Adata0->aBdata->aCp->aD(*p).a74已知有声明“char c=1; int x=300; float t=35000; double d

34、=3.1234567e10;”,则以下表达式求值时除(D )外其结果都可能是不准确的。Ax=t/cBt=d/xCt=d/1e5fDt = x + c75已有预处理命令和声明如下: #define N 10 int a=2, c=1; double b=1.2;下述程序段正确的是(C )。Aswitch(a) case c: a-;break;case c+1: a+;break; Bswitch(a) case N>0: a=1;break; case 1: a=0;break;Cswitch(a) case 2: b+;break; case 0: b=3;Dswitch(b) cas

35、e 1.0: b+;break;case 1.2: b=1;break;76若有以下声明和定义: void fun(int c)printf("%d", c); main( ) void (*a) (int)=fun, *b(int), (*c) ( int ); *调用fun函数语句位置* void *b(int c) 如果在main函数中需要调用fun函数,以下调用语句中错误的是(C )。Afun(1);B(*a)(1);Cb=fun; (*b)(1);Dc=a; (*c)(1);77以下叙述正确的是(A )。A一个用C语言编写的程序在运行时总是从main函数开始逐条执

36、行语句的Bmain函数是系统库函数Cmain函数中每行只能出现一条语句Dmain函数必须出现在所有其他函数之前78以下关于函数形式参数的声明中正确的是(A )。Aint a Bint a Cint a =0Dint a2 79关于函数返回值,以下叙述中正确的是(B )。 A函数返回值的类型由函数体内return语句包含的表达式的类型决定 B函数返回值的类型由函数头部定义的函数类型决定 C若函数体中有多个return语句,则函数的返回值是排列在最后面的return语句中表达式的值 D若函数体内没有return语句,则函数没有返回值80已知字符A的机内编码为65,则执行下列函数调用语句时,不能输出

37、字符B的是(B )。 Aputchar(B);Bputchar("B"); Cputchar(66);Dputchar(x42);81下列一维数组的声明中正确的是(C )。 Aint a ;Bint n=10, an; Cint a10+1=0;Dint a3=1, 2, 3, 4;82已知有结构类型定义: typedef struct exlong int num; char sex; struct ex*next; student; 下列叙述错误的是(B )。 Astruct ex是结构类型Bstudent是结构类型的变量名 Cex可缺省Dstudent不可缺省83下列

38、程序段的输出结果是(C )。 int i, x33=9, 8, 7, 6, 5, 4, 3, 2, 1, *p=&x11;for(i=0;i<4;i+=2)printf("%d", *(p+i); A5 2B5 1C5 3D9 784已知有声明”char a6, *p=a;”,现需要在程序运行过程中将字符串"Hello",保存到a数组中,则下列选项中能正确完成此操作的表达式是(D )。 Aa6="Hello"Ba="Hello" Cp="Hello"Dstrcpy(a, "

39、;Hello")85若要使表达式“p+”无语法错误,则变量p不能声明为(D )。 Aint p;Bdouble p;Cint *p;Dstructint x;p;86以下函数定义中正确的是(C )。Aint fun(int a, b) Bint fun(int a)Cint fun(void)Dint fun(static int a, int b)87已知有函数f的定义如下: int f(int a, int b) if(a<b)return(a, b);else return(b, a); 在main函数中若调用函数f(2, 3),得到的返回值是(B )。 A2B3C2和3

40、D3和288下列各选项都是在C语言程字段中增加的注释,其中注释方法错误的是(B )。 Avoid main(/*int argc, char, *argv */) Bvoid main( )pri/*remark*/ntf("name"); Cvoid main( ) int x/*=10*/; printf("%d", x);Dvoid main( ) int x=10;/*printf(" %d", x);*/89若有定义和声明typedef enumgreen, red, yellow, blue, b1ackcolor; color flower;,则下列语句中正确的是(B )。Agreen=red;Bflower=red;Ccolor=red;Denum=red;90若已定义一个有返回值的函数,则以下关于调用该函数的叙述中错误的是(D )。 A函数调用可以作为独立的语句存在 B函数调用可以出现在表达式中 C函数调用可以作为一个函数实参 D函数调用可以作为一个函数形参91对应main函数中的fun函数调用语句,以下给出的四个fun函数首部中,错误的是(D )。 main( ) int a50, n; fun(n, &a9);Avoid fun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论