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

下载本文档

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

文档简介

1、 复 1表达式 “ (a=4*5, b=a*2), b-a, a+=2 的” 是( C)。A 2B 20C 22D 422以下是一个自定 函数的 部,其中正确的是(C )。A int fun(int a , b)B int fun(int a , int a)C int fun(int*a, int b)D int fun(char a , int b)3以下数 声明 句中正确的是(D )。A int n, an;B int a ;C int a23=l,2,3;D int a 3=l,2,3;4已知在某 C 言 系 中表达式 sizeof(int) 的 是 2,如果希望将常量 -70 000

2、 正确地保存在一个 量 a 中, 量声明 句 当是( B )。A int a;B long int a;C unsigned int a;D unsigned int a;5以下声明 句中,用于声明一个行指 量的是(C )。A int *p(int);B int *p;C int (*p)3;D int (*p)(int);6在以下程序中,需要在 fun 函数中声明一个 int 型的 量,以下 中( A )不能用做 量的名字。#include int y;main( ) int a=1;fun(a);int fun(int x)_; *int 型 量声明 句位置* * 若干 行 句* A xB

3、 yC fabsD fun7如有 句 “ int x,y=0,z,*p3; p0=&x; p1=&y; p2=&z;,以下表达式”中有 法 的是(B )。A y+B p+C *+p0D (*p0)+8 有声明 句 “ inta33=1,2,3,4,5,6,7,8,9; ,以下 句”中除( D )外均能 出 a12 的 。A printf( d ,*(*(a+1)+2)C printf(%d ,*(a1+2);B printf(%d ,*( a20-1);D printf(%d ,*(a+1)2);9已知有声明 句int x=8 , 下列表达式中, 2 的是( B )。A x+=x-=xB x%

4、 = x-2C x8?x=0:x+D x= x + x10以下关于函数的叙述中正确的是(D )。A 在函数体中可以直接引用另一个函数中声明 static 的局部 量的 B 在函数体中至少必 有一个return 句C在函数体中可以定 另一个函数D 在函数体中可以 用函数自身11若有声明 句 “ int a10, b33; , 以下” 数 元素 的操作中,不会出 越界 的是( D )。A a-1=0B a10=0C b30=0D b02=012若有声明 句“ char ch= a , *pc=&ch;,以下 ”句中有 法 的是(C )。A (*pc)+;B ch+= - a + A;C toupp

5、er(ch)=ch;D ch+;13已知有声明 句“ int a5=1, 2, 3, 4, 5, *p, i;,以下 句中(” C )不能正确 出a 数 全部元素的 。A for(p=a, i=0;i5;i+)printf(%d,*(p+i);B for(p=a;pa+5;p+)printf(%d, *p);C for(p=a, i=0;pa+5;p+, i+)printf(%d, pi);D for(p=a;p2!1B S20C S1D S16 “异或 ”运算可描述 “ a xor b,其”中 a 和 b 参加运算的两个操作数,运算 果 当且 当a、b 两个操作数中只有一个 真 才 真,其他

6、情况下均 假。 以下表达式中 ( D可以正确表示 “异或 ”运算。)A a | bB a & b17若有声明 “ int a5,*b=a,(*c)3,*d3;A a0=0B b0=0C (a&b)&!(a | b)D (a | b)&!(a&b), 在以下”表达式中有 法 的是(C )。C c0=0D d0=018若有声明:int k, a, b;unsigned long y=5;double x=1.23; 以下表达式中正确的是( A x%(-5) B x=y6D )。C k=(a=1,b=2,&a + &b)D a+=a- = (b=2) * (a = 3)19一个用C 言 写的源程序中

7、, ( AA 取名 main 的函数定 C 量声明)是必不可少的。B #includeD 注 20以下声明中正确的是(D )。A int n=2, an=10;C int n=10, a2=n;B int n=10, *p2=&n;D int a22=10, (*p)2=a+1;21、若有函数fun的定 void fun()static int a=1; 下列叙述中不正确的是(B )。A 在每次 用fun 函数 , 量a 的 是上次 用 束 a 的 B 在 fun 函数之外,可以用变量名C在其他函数中,可以出现声明D fun 函数的形式参数不能取名为a 直接引用double a=2.5;aa

8、的值22以下单目运算符均只需要一个操作数,A &B +其中要求操作数的类型只能是指针型的是C !D *( D)。23已知有声明 “ int good=l; ,若要”使得表达式“ p=good+good 无”语法错误 (包括警告错误),p 应当声明为(B )。A char p;B char*p;C int p;D int *p;24以下全局变量声明中正确的是(D )。A auto int i=1;B float a=1, b=0.5, c=a+b;C char for=1;D static char ch;25若已有声明 “ double a23=1, 2, 3, 4, 5, 6;,则下列表达式

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

10、则调用 f 函数的正确形式是(B )。A f;B f();C f(void);D f(1);29以下程序在编译时在第三行报错“ Redeclarationof afunctionind”,如果决定修改该行声明中出现的局部变量a 的名字,则下列选项中不能用来替换变量名a 的是( A )。int b;void d(int a) int f; double a=1; printf(%d,a);main( )inte=1;d(e);A fB eC dD b30、以下语句中不包含关键字的是(A )。A x=sqrt(2);Bwhile(x!=0)x-;Cif(x0)x=-x;D return x;31在

11、 main 函数体内部和外部均允许出现的实体是(B )。A 预处理命令B 语句D 函数形式参数声明32、已知有声明int x=2 :,以下表达式中值不等于8 的是( D )。A x+=2,x*2B x+=x*=XC (x+7)/2*(x+1)%2+1)D x*7.2/x+133、执行以下程序时,#includemain() int a; float b; scanf(%3d%f,&a,&b);printf(%dt%f,ab);若要求变量a 和 b 分别从键盘获得输入值45 和 678.0,则以下四种输入数据中(代表 “空格”键, 代表 “回车 ”键 ),不能达到该要求的输入数据是(C )。A

12、45 678B 45678C 45,678D 04567834下列程序段中,能将变量x、y 中值较大的数保存到变量的程序段是( C )。A if(xy)a=x;b=y;else a=y;b=x;B if(xy)a=x;b=y;else a=y;b=x;C if(xy)a=x;b=y;elsea=y;b=x;D if(xy)a=x;b=y;else(xy)a=y;b=x;a、值较小的数保存到变量b35已知函数fun的定义如下:void fun(int x, int y)int k;for(k=0;ky;k+)xk+=y;若式是(main 函数中有声明C )。int a10=10及调用fun函数的

13、语句,则正确的fun函数调用形A fun(a ,a0);B fun(a0,a0);C fun(&a0,a0);D fun(a0,&a0);36 有下列程序段:static char b=2;void Y ( )static float d=4;int a=1;void X ( ) int c=3;关于程序段中各 量的属性,以下叙述中 的是(DA a 是全局 量,函数X 可以 ,函数Y 不能 B b 是全局 量,函数X 和函数 Y 都可以 C c 是 量,函数X 可 ,函数Y 不可 D d 是静 量,函数X 和函数 Y 都可以 )。37、若有如下声明和 句:int t33, *pt3, k;fo

14、r(k=0; k3;k+) ptk=&tk0; 表达式A t20*(*(pt+1)+2)所引用的是( B &t20C )。C t12D &t1238 有声明float a=1.23456; int i;入运算,能 功能的表达式是(,欲将 a 中的数 保留小数点后两位,A )。第三位 行四舍五A i=a*100+0.5, a=i/100 0C a=(int)a*100+0.5)/l00.0B a=(a*100+0.5)/100.0D a=(a/100+0.5)/100.039若已有声明“ int x=4, y=3; , 表”达式x y ? x+: y+ 的 是( B )。A 2B 3C 4D 5

15、40 有 量声明“ char c; ” ,行 “ for (; c=(getchar( ) != n ) ; )printf(%c, c); 入 “ABCDEFG ”之后, 出的 果是(C )。 ,从 ”上A ABCDEFGB AABBCCDDEEFFGGC非字母数字字符D 句不能 行41以下表示数学式“ abc的” 表达式中, 的是(A )。A abcB ab&b=b)&!(b=c)42下面关于循 句for、 while 、 do_while 的叙述中,正确的是(D !(a=b|b=c)D )。A 三种循 句的循 体都必 放入一 花括号中B三种循 句中都可以缺省循 止条件表达式C三种循 句的

16、循 体都至少被无条件地 行一次D三种循 句都可能出 无 循 43、若有声明 “ int a=l, 2, 3, 4, *p, i;, 以下程序段”中不能 出A for(i=0;i4;i+=2)printf( d, ai);B for(p=0;p4;p+=2)printf( d, ap);C for(p=a;pa+4;p+=2)printf( d, *p);D for(p=a, i=0; iprice=10;48若有声明 “ int a=3, b=4, c=5; ,则下列”表达式中值为0 的是( DA a&b=0B aprice=10;)。49已知有声明“ long x, y; ,且”x 中整数的

17、十进制表示有n 位数字(整数 x 十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到式中能正确实现这一功能的是(C )。A y=x/(10*(n-1)By=x%(10*(n-1)Cy=x%(long)pow(10, n-1)D y=x%(10(n-1)4n=0)y=1; else y=-1;By=x=0?1:01;Cswitch()case x=0:y=1;break;default:y=-1;“当x 大于等于0 时y 取值1,否则yD switch(x-abs(x) case 0:y=1;break;default:y=-1;51、已知有声明“ int m=5,4,3,2,1,i=0

18、;,下列对”m 数组元素的引用中,错误的是(B )。A m+iBm5Cm2*2=0D mm452、若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是(D )。A 实参和其对应的形参占用同一存储单元D 形参和实参占用不同的存储单元53 C 语言规定,在一个源程序中main 函数的位置( D )。A 必须在最开始D 可以在其他函数之前或之后54、已知有声明“ int a=3, b=4, c;,则执行”语句“ c=1/2*(a+b); 后,”c 的值是( A )。A 0B 3C 3.5D 455、已知字母 A 的 ASCII 码是 65,字母 a 的 ASCII 码是 97,变量 c

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

20、s.month=11; s.day=12;C birth.year=1989; birth.month=11; birth.day=12;D s.birth.year=1989; s.birth.month=11; s.birth.day=12;57、执行以下程序后的结果是(C )。#include void main()int x=3; Doprintf(%dt, x=x-3); while(!x);A 输出一个数:0B输出一个数:3C输出两个数:0 和 -3D 无限循环,反复输出数58设有声明 “ int a=4, b=3, c=5;,以下 ”4 个程序段中有3 个程序段的执行效果是相同的

21、,一个执行效果不同的是(C )。A if(ab) c=a, a=b, b=c;B if(ab) c=a, a=b, b=c;C if(ab) c=a; a=b; b=c;D if(ab) c=a; a=b; b=c;59、以下关于if 语句和 switch 语句的叙述中错误的是(D )。A if 语句和 switch 语句都可以实现算法的选择结构B if 语句和 switch 语句都能实现多路(两路以上)选择C if 语句可以嵌套使用D switch 语句不能嵌套使用60若有声明语句“ char s110=0 ,s210= books;,则”能将字符串books 赋给数组存的表达式是(D )。

22、另s1 保A s1= books;C s1=s2;B strcpy(s2, s1);D strcat(sl, s2);61已知 A 盘根目录下的一个文本数据文件data.dat 中存储了 100 个 int 型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用一次fopen 函数,已有声明语句“FILE*fp;,”则 fopen 函数的正确调用形式是(A )。A fp=fopen(a:data.dat,r+);B fp=fopen(a:data.dat ,w+);C fp=fopen(a:data.dat,a+ );D fp=fopen(a:data.dat,w );62数组和链表都可

23、以用于存储一组彼此有关联的数据,以下说法中不正确的是(B )。A 数组占用一块连续的存储区域,链表可能占用若干块不连续的存储区域B 数组和链表所占用的存储区域均不能在程序运行期间动态地分配D 数组的长度是固定的,链表的长度是不固定的63设有定义和声明语句:typedef struct dtypeint a;struct dtype *b;node;static node x3=5, &x1, 7, &x2, 9,0 , *prt=&x0;下列选项中,表达式值不为5 的是(A)。A x1.b-a-2B Ptr-b-a-2C (ptr+1)-a-2D ptr-a64在以下程序中,需要在main 函

24、数之后定义一个函数,以下选项中(D )可以用做该函数的名字。#define P 3.14int y;main( ) int a = 1;函数名 (a); * 若干 行 句 * int函数名(int x)return x*x;A mainB yCPD print65已知有 句“ FILE *fp;int x=123;fp =fopen(out.dat, w);,如果需要将 ”量本形式保存到一个磁 文件out.dat 中, 以下函数 用形式中正确的是(B )。x 的 以文A fprintf(%d, x);B fprintf(fp, %d, x);C fprinff(%d, x, fp);D fpr

25、intf(out.dat, %d, x);66已知有声明 句“ char s110= 12345, s210= abcde, s310;存 的字符串和s2 中存 的字符串正确交 的是(D )。,以下 句中能”将s1 中A s3=s1,s1= s2, s2 = s3;B s30 = s10,s10 = s20,s20=s30;C strcpy(s30,s10),strcpy(s10,s20),strcpy(s20,s30);D strcpy(s3,s1), strcpy(sl, s2), strcpy(s2, s3);67在定 任何一个函数 ,下列 中(B )是不可缺少的。A 函数名之前的数据

26、型C形式参数声明B 函数名之后的一 括号D 函数体中的 句68已有数据 型定 和 量声明如下:struct personint num;char name20, sex;struct int class; char prof20;in;a=20,Li ning, M , 5,computer, *p= & a;下列 句中正确的是(B )。A printf(%s, a-nname);C printf(%s, *);B printf(%s, p-in prof);D printf(%c, p-in-prof);69若有以下程序:int x;int f(int y)return 符;#

27、include int w;main( )int z=2;f(z); 在函数f 中 returnA x 或 w 句后允 出 的 符是(B x 或 yC z 或wB )。D NULL70以下跳 句中,只有(C )可以 不唯一的跳 目的地。A continue;71在缺省情况下, 标准A 软盘72已有枚举类型定义:表达式的机内值均等于B break;C goto 标识符C 的编译系统中预定义的标准输出流B 硬盘C键盘“ enum letterA, B, C=7, D, E;10。;D return;stdout 直接连接的设备是 ( D )。D显示器,以下表”达式中除(D )外,其他A xb -1

28、B B+EC 010+2D 0xf-373已知数据类型定义和变量声明如下:struct skint a; float b;data2, *p;若有 p=data,则以下对data0中成员 a 的引用中错误的是(A )。A data0-aB data-aC p-aD (*p).a74已知有声明 “ char c= 1 ; int x=300; float t=35000; double d=3.1234567e10;,则以下表达式求值时除( D )外其结果都可能是不准确的。”A x=t/cB t=d/xC t=d/1e5fD t = x + c75已有预处理命令和声明如下:#define N 1

29、0int a=2, c=1;double b=1.2;下述程序段正确的是(C )。A switch(a) case c:a-;break;case c+1:a+;break;B switch(a) case N0: a=1;break; case 1: a=0;break;C switch(a) case 2:b+;break;case 0b=3;:D switch(b) case 1.0: b+;break; case 1.2: b=1;break;76若有以下声明和定义:voidfun(int c)printf(%d, c);main( )void (*a) (int)=fun, *b(i

30、nt), (*c) ( int ); * 调用 fun 函数语句位置*void *b(int c) 如果在 main 函数中需要调用funA fun(1);B (*a)(1);函数,以下调用语句中错误的是(C b=fun; (*b)(1);C )。D c=a; (*c)(1);77以下叙述正确的是(A )。A 一个用 C 语言编写的程序在运行时总是从B main 函数是系统库函数C main 函数中每行只能出现一条语句D main 函数必须出现在所有其他函数之前main 函数开始逐条执行语句的78以下关于函数形式参数的声明中正确的是(A int a B int a C int a =0D in

31、t a2 A )。79关于函数返回值,以下叙述中正确的是(B )。A 函数返回值的类型由函数体内return 语句包含的表达式的类型决定B函数返回值的类型由函数头部定义的函数类型决定C若函数体中有多个return 语句,则函数的返回值是排列在最后面的return语句中表达式的值D若函数体内没有return 语句,则函数没有返回值80已知字符A 的机内编码为65,则执行下列函数调用语句时,不能输出字符(B )。B 的是A putchar( B );Bputchar(B);Cputchar(66);D putchar( x42 );81下列一维数组的声明中正确的是(C )。A int a ;Bin

32、t n=10, an;Cint a10+1=0;D int a3=1,2, 3, 4;82已知有结构类型定义:typedef struct exlongint num;char sex;struct ex*next;student;下列叙述错误的是(B )。A struct ex 是结构类型Bstudent 是结构类型的变量名Cex 可缺省D student 不可缺省83下列程序段的输出结果是(C )。int i,x33=9, 8, 7, 6,5, 4, 3, 2, 1, *p=&x11;for(i=0;i4;i+=2)printf(%d,*(p+i);A 5 2B51C53D 9 784已知

33、有声明 ” chara6, *p=a; ”,现需要在程序运行过程中将字符串Hello ,保存到 a 数组中,则下列选项中能正确完成此操作的表达式是(D )。A a6=HelloBa=HelloCp=HelloD strcpy(a, Hello)85若要使表达式“ p+无”语法错误,则变量p 不能声明为(D )。A int p;Bdouble p;Cint *p;D structintx;p;86以下函数定义中正确的是(C )。A int fun(inta, b)Bint fun(inta)Cint fun(void)D int fun(static int a, int b)87已知有函数f

34、的定义如下:int f(inta, int b)if(ab)return(a,b);else return(b, a);在 main 函数中若调用函数f(2, 3),得到的返回值是( B )。A 2B3C2 和 3D 3 和 288下列各选项都是在 C 语言程字段中增加的注释,其中注释方法错误的是(B )。A void main(/*int argc, char, *argv */)Bvoid main( )pri/*remark*/ntf(name);Cvoid main( ) int x/*=10*/;printf(%d, x);D void main( ) int x=10;/*prin

35、tf( %d, x);*/89若有定义和声明typedef enumgreen, red, yellow, blue, b1ackcolor; color flower;,则下列语句中正确的是(B )。A green=red; B flower=red; C color=red; D enum=red;90若已定义一个有返回值的函数,则以下关于调用该函数的叙述中错误的是(D )。A 函数调用可以作为独立的语句存在B 函数调用可以出现在表达式中D 函数调用可以作为一个函数形参91对应 main 函数中的 fun 函数调用语句, 以下给出的四个 fun 函数首部中,错误的是( D )。 main( ) int a50, n; fun(n, &a9);A void fun(int m, int x)B v

温馨提示

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

评论

0/150

提交评论