C语言专升本考试练习题及答案3_第1页
C语言专升本考试练习题及答案3_第2页
C语言专升本考试练习题及答案3_第3页
C语言专升本考试练习题及答案3_第4页
C语言专升本考试练习题及答案3_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

C语言专升本考试练习题及答案4

1.[单选题]在说明语句“int*f();”中,标识符f代表是()。

A)一个用于指向整型数据的指针变量

B)一个用于指向一维数组的行指针

C)一个用于指向函数的指针变量

D)一个返回值为指针型的函数名

答案:D

解析:

2.[单选题]有以下程序

Fun(intx,inty)

{return(x+y);}

Main()

{inta=l,b=2,c=3,sum;

Sum=fun((a++,b++,a+b),c++);

Printf("%d\n",sum);

)

执行后的输出结果是_____o

A)6

B)7

08

D)9

答案:C

解析:知识点/选择题/C6函数与编译预处理/函数的定义与调用T

3.[单选题]下面的程序中有错误的是

Uinclude<stdio.h>

Main

{

Floatarray[5]={0.0};〃第A行

Int1;

For(i=0;i<5;i++)

Scanf("%of",&array[i]);

For(i=l;i<5;i++)

Array[0]=array[0]array[i];〃第B行

Print("%f\n",aray[0]);〃第C行

)

A)第A行

B)第B行

C)第C行

D)没有

答案:D

解析:

4.[单选题]以下不属于流程控制语句的是°

A)表达式语句

B)选择语句

C)循环语句

D)转移语句

答案:A

解析:

5.[单选题]C语言中整数8在内存中的存储形式是

A)11111111111111111000

B)1000000000001000

C)0000000000001000

0)11111111111111110111

答案:A

解析:

6.[单选题]下列语句中,不正确的是()o

A)staticchara[2]={l,2};

B)staticinta[2]={'1','2'};

C)staticchara[2]={'1','2','3');

D)staticchara[2]={'1'};

答案:C

解析:

7.[单选题]C语言规定,在一个源程序中,main函数的位置()。

A)必须在最开始

B)必须在系统调用的库函数的后面

C)可以任意

D)必须在最后

答案:C

解析:

8.[单选题]已知一个函数的定义如下:

Doublefun(intx,doubley){...}

则该函数正确的函数原型声明为

A)doublefun(intx,doubley)

B)fun(intx,doubley)

C)doublefun(int,double);

D)fun(x,y);

答案:C

解析:

9.[单选题]有以下程序:

Sinclude<stdio.h>

Main()

{FILE*fp;

Inti,k=0,n=0;

Fp=fopen("dl.dat","w");

For(i=l;i<4;i++)fprintf(fp,"%d",i);

Fclose(fp);

Fp=fopen("dl.dat","r");

Fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

Fclose(fp);

}

执行后输出结果是o

A)12

B)1230

0123

D)00

答案:B

解析:知识点/选择题/Cll文件/格式化读写函数T

10.[单选题]设有程序段"intm=20;while(m=0)m=m++;”能执行

A)while

B)循环是无限循环

C)循环体语句一次也不执行

D)循环体语句执行一次

答案:C

解析:

11.[单选题]设intx=l,y=l;表达式(!x||y-)的值是()。

A)0

B)1

02

D)-l

答案:B

解析:

12.[单选题]以下程序的输出结果是

Main()

{intx=10,y=10,i;

For(i=0;x>8;y=++i)

Printf("%d%d",x一,y);

}

A)10192

B)9876

C)10990

D)101091

答案:D

解析:知识点/选择题/C5循环结构程序设计/FOR循环结构T

13.[单选题]运行下面的程序后,其输出结果是。mainO{inta=6,b=2,c;c=f(a)/f(b);

printf("%d\n",c);}intf(intx){inty;y=x++*x++;returny;)

A)9

B)6

C)36

D)18

答案:A

解析:

14.[单选题]若有说明:int*pl,*p2,m=5,n;以下均是正确赋值语句的选项是()。

A)pl=&m;p2=&pl

B)pl=&m;p2=&n;*pl=*p2;

C)pl=&m;p2=pl;

D)pl=&m;*p2=*pl;

答案:C

解析:

15.[单选题]设int型占2个字节,且inti=-2;,则语句printfi);的输出结果为

A)0

B)-2

065534

D)65535

答案:C

解析:

16.[单选题]在16位IBM-PC机上使用C语言,若有如下定义:

Structdata

Inti;

Charch;

Doublef;

}b;

则结构变量b占用内存的字节数是

A)1

B)2

C)7

D)ll

答案:D

解析:

17.[单选题]以下程序运行后的输出东吉果是0

Main()

(

Doubled=3,2;intx,y;

X=1.2;y=(x+3.8)/5.0:

Printf("%d\n",d*y);

}

A)3

B)3.2

C)0

D)3.07

答案:C

解析:

18.[单选题]若用数组名作为函数的实参,传递给形参的是()。

A)数组的首地址

B)数组第一个元素的值

C)数组中全部元素的值

D)数组元素的个数

答案:A

解析:

19.[单选题]C语言源程序名的后缀是_

A)exe

B)C

C)obj

D)cp

答案:B

解析:知识点/选择题/C1C语言概述/程序设计概述

20.[单选题]设有程序段:intk=10;while(k=0)k=k-l;这下面描述中正确的是()。(2分)

A)l.while循环执行10次

B)l.循环是无限循环

01.循环体语句一次也不执行

D)i.循环体语句执行一次

答案:C

解析:

21.[单选题]在一个源文件中定义的全局变量的作用域是()。(2分)

A)l.本文件的全部范围。

B)l.从定义该变量的位置开始到本文件结束。

01.本程序的全部范围。

D)l.本函数的全部范围。

答案:B

解析:

22.[单选题]如果要一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,则这

个变量的存储类型应该被说明为()。

A)自动变量

B)静态变量

C)外部变量

D)寄存器变量

答案:B

解析:

23.[单选题]若有inti=3,*p;p=&i;下列语句中输出结果为3的是()。

A)printf("%d",&p);

B)printf("%d",*i);

C)printf("%d",*p);

D)printf("%d",p);

答案:C

解析:

24.[单选题]下面程序的输出是main。{inta=l,b=2;a=a+b;b=a-b;a=a-b;

printf("%d,%d\n",a,b);)

A)l,2

B)l,l,

02,2

D)2,l

答案:D

解析:

25.[单选题]在嵌套使用if语句时,C语言规定else总是

A)和之前与其具有相同缩进位置的if配对

B)和之前与其最近的if配对

C)和之前与其最近不带elee的if配对

D)和之前的第一个if配对

答案:C

解析:

26.[单选题]以下正确的函数定义是

A)doublefun(intx,inty)

{z=x+y;returnz;}

B)doublefun(intx,y)

{intz;returnz;)

C)fun(x,y)

{intx,y;doublez;

Z=x+y;returnz;

)

D)doublefun(intx,inty)

{doublez;

Returnz;}

答案:D

解析:

27.[单选题]下面能正确进行字符串赋值操作的是

A)chars[5]=("ABCDE");

B)chars[5]={'A','B','C','D','E"};

C)char*s;s="ABCDEH;

D)char*s;scanf(n%sM,s);

答案:C

解析:

28.[单选题]有以下程序

ftinclude<stdio.h>

VoidWriteStr(char*fn,char*str)

{FILE*fp;

Fp=fopen(fn,MwM);

Fputs(str,fp);

Fclose(fp);

)

Main()

(

WriteStr(ntl.datH,HstartM);

WriteStr(ntl.dat","end");

程序运行后,文件tl.dat中的内容是

A)start

B)end

C)startend

D)endrt

答案:B

解析:知识点/选择题/Cll文件/【

29.[单选题]有以下程序

Typedefstruct

{int

B,p;}A;

Voidf(Ac)注意:c是结构变量名*/

{intj;

Cb+=1;cp+=2;

)

Main()

{inti;

Aa={l,2};

F(a);

Printf(',%d,%d\n",a.b,a.p);

)

程序运行后的输出结果是_____o

A)2,3

B)2,4

01.4

D)l,2

答案:D

解析:知识点/选择题/C9结构体与共用体/结构体变量作函数参数T

30.[单选题]以下不能对二维数组a进行正确初始化的语句是()o

A)inta[2][3]={0};

B)inta[][3]={{l,2},{0});

Ointa[2][3]={{1,2},{3,4},{5,6}};

D)inta[][3]={1,2,3,4,5,6};

答案:C

解析:

31.[单选题]以下选项中非法的表达式是o

A)0<=x<100

B)i=j==0

C)(char)(65+3)

D)x+l=x+l

答案:D

解析:知识点/选择题/C2基本数据类型及表达式/表达式及语句合法性判断T

32.[单选题]若有定义和语句:chars[10];s="abcd";printf(吗s\n",s);则结果是。(以下

口表示空格)

A)输出abed

B)输出a

C)输出abed口□□□□

D)编译不通过

答案:D

解析:

33.[单选题]在C语言中,调用函数除函数名外,还必须有()o

A)函数预说明

B)实际参数

0()

D)函数返回值

答案:C

解析:

34.[单选题]以下正确的描述是()。

A)l.如果形参和实参的类型不一致,应以实参类型为准。

B)l.定义函数时,可以省略不写形参的类型,只写形参名。

C)1.return语句后不能是表达式。

D)l.如果函数值类型与返回值类型不一致,应以函数值类型为准。

答案:D

解析:

35.[单选题]若有说明:intn=2,p=&n,q=p;则以下非法的赋值为()□(2分)

A)1.p=q;

B)1.p=q;

C)1.n=*q;

D)1.p=n;

答案:D

解析:

36.[单选题]以下程序执行后的输出结果是

Main()

(

Intx=l,y=l;

While(y<=5)

{if(x>=10)break;

If(x%2==0)

{x+=5;continue;

X-=3;y++;

Prinf("%d,%d",x,y);

}

A)6,6

B)7,6

010,3

D)7,3

答案:A

解析:

37.[单选题]设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是

A)0~255

B)0~65535

C)256~255

0)32768^2767

答案:B

解析:

38.[单选题]已知:chara;intb;floatc;doubled;执行语句,c=a+b+c+d;后,变量c的数据

类型是0

A)int

B)char

C)float

D)double

答案:C

解析:

39.[单选题]与实际参数为实型数组名相对应的形式参数不可以定义为。。

A)floata[];

B)float*a;

C)floata;

D)float(*a)[3];

答案:C

解析:

40.[单选题]若有以下数组说明,则数值最小的和最大的元素下标分别是()。

Inta[12]={l,2,3,4,5,6,7,8,9,10,11,12};

A)l,12

B)0,11

01,11

D)0,12

答案:B

解析:

41.[单选题]对于以下递归函数f,调用f(4),其返回值为()。intf(intn){returnf(n-

l)+n;}

A)10

B)ll

C)0

D)以上均不是

答案:D

解析:变量存储属性及预编译

42.[单选题]关于指针概念说法不正确的是。。

A)一个指针变量只能指向同一类型变量

B)一个变量的地址称为该变量的指针

C)只有同一类型变量的地址才能放到指向该类型变量的指针变量之中

D)指针变量可以由整数赋,不能用浮点赋

答案:D

解析:

43.[单选题]在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则

A)称为函数的直接递归调用

B)称为函数的间接递归调用

C)称为函数的循环调用

D)C语言中不允许这样的递归调用

答案:B

解析:知识点/选择题/C6函数与编译预处理/函数的基本概念

44.[单选题]Printf函数中用到格式符%5s,其中数字5表示输出的字符串占用

5列,如果字符串长度大于5,则输出按方式()o

A)从左起输出该字符串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

答案:B

解析:

45.[单选题]若要求在迁后对圆括号中表示,不等于0的关系,则能正确表示这一关系的表达式为

A)a<>0

B)!a

C)a=O

D)a

答案:D

解析:

46.[单选题]以下不能正确表示代数式的C语言表达式是。

A)2*a*b/c/d

B)a*b/c/d*2

C)a/c/d*b*2

D)2*a*b/c*d

答案:D

解析:知识点/选择题/C2基本数据类型及表达式/【

47.[单选题]下列可以正确表示字符型常数的是____.

A)'a)

C)“n"

D)297

答案:B

解析:

48.[单选题]根据下面的定义,structworker{charname[18];intage;);structworker

w[100]={"John",16,"Paul",17,"Mary",16);能输出字母'P’的语句是()。(2分)

A)1.printf("%c",w[ll.name);

B)1.printf("%c",w[2].name[0]);

C)1.printf("%c",w[2].name[1]);

D)1.printf("%c",w[l].name[0]);

答案:D

解析:

49.[单选题]int*p的含义是___o

A)p是一个指针,用来存放一个整型数

B)p是一个指针,用来存放一个整型数据在内存中的地址

C)p是一个整型变量

D)以上都不对

答案:B

解析:

50.[单选题]以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储

到链表的各个结点中,请为下划线处有号码的选择出正确的选项。

ttinclude<stdlib.h>

Stuctnode

{chardata;structnode*next;};

CreatList(char*s)

{structnode*h,*p,*q);

H=(structnode*)malloc(sizeof(structnode));

P二q二h;

While(*s!=t\0,)

{p=(structnode*)malloc(sizeof(structnode));

P->data=;

Q->next=p;

Q=—(50)—;

S++;

)

P->next=,\0*;

Returnh;

)

Main()

{charstr口二"linklist”;

Structnode*head;

Head=CreatList(str);

)

A)p->next

B)p

C)s

D)s->next

答案:B

解析:知识点/选择题/C9结构体与共用体/链表T

51.[单选题]下面是对数组s的初始化,其中错误的语句是()

A)chars[5]="abcdef”;

B)chars[5]={'a','b','c'};

C)chars[5]="”;

D)chars[5]={"abc"};

答案:A

解析:

52.[单选题]C语言中while和do-while循环的主要区别是()。

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比do-while的循环控制条件更严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

答案:A

解析:

53.[单选题]设有如下定义:structsk{inta;floatb;}data,*p;

若要使p指向data中的a域,正确的赋值语句是()。

A)p=(structsk*)&data.a;

B)p=(structsk*)data,a;

C)p=&data.a;

D)*p=data.a;

答案:A

解析:

54.[单选题]在C语言中,if语句后的一对原括号中,用以决定分支的流程的表

达式()。

A)只能用逻辑表达式

B)只能用关系表达式

C)只能用逻辑表达式或关系表达式

D)可用任意表达式

答案:D

解析:

55.[单选题]若以"a+"方式打开一个已存在的文件,则以下叙述正确的是。。

A)文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作

B)文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作

C)文件打开时,原有文件内容被删除,只可作写操作

D)以上各种说法皆不正确

答案:A

解析:

56.[单选题]若有inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5

的语句为()O

A)printf("%d",*(a+5));

B)printf("%d",p[5]);

C)printf("%d",*(p+5));

D)printf("%d",*p[5]);

答案:D

解析:

57.[单选题]如有以下说明,则数值为4的表达式是。

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12);

charc='a*,dg;

A)a[g-c]

B)a[4]

OaL'd'-'c'J

D)a['d'-c]

答案:D

解析:

58.[单选题]已知inti;则执行语句i=2.6;后,i的值为

A)2

B)3

02.6

D)不确定

答案:A

解析:

59.[单选题]C语言结构体类型变量在程序执行期间

A)所有成员一直驻留在内存中

B)只有一个成员驻留在内存中

C)部分成员驻留在内存中

D)没有成员驻留在内存中

答案:A

解析:

60.[单选题]若有以下定义:chars='\092';则该语句O。

A)使s的值包含1个字符

B)定义不合法,s的值不确定

C)使s的值包含4个字符

D)使s的值包含3个字符

答案:B

解析:

61.[单选题]下列程序运行后的输出结果是。INCLUDEPICTURE

"https://p.ananas,chaoxing.com/star3/origin/a97d04b79633bd78210bd6e005320943.png"\*

MERGEFORMATINETINCLUDEPICTURE

"https://p.ananas,chaoxing.Com/star3/origin/a97d04b79633bd78210bd6e005320943.png"\*

MERGEFORMATINET

A)55

B)-54

0-55

D)54

答案:B

解析:二维数组-测验题

#include<stdio.h>

#defiiieMAX10

voidmainO

{iiittsui】i,a[]={L2,3.4.5,6*7.8.9,10}:

siim=l;

for(i=0;i<MAX;i-H-)

sum4a[i]:

prilltf(usiim=%d\if\sinn);

62.[单选题]设有定义:charp[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数

的表达式是______O

A)sizeof(p)

B)sizeof(char)

C)sizeof(*q)

D)sizeof(p[0])

答案:A

解析:知识点/选择题/C8指针/指针与字符数组T

63.[单选题]有如下函数调用语句:

Func(reel,rec2+rec3,(rec4,rec5));

该函数调用语句中,含有的实参个数是O

A)3

B)4

C)5

D)有语法错

答案:A

解析:知识点/选择题/C6函数与编译预处理/函数的基本概念

64.[单选题]下列程序的输出结果是()。

Main()

{intx=l,y=0,a=0,b=0;

switch(x)

case1:switch(y)

case0:a++;break;

case1:b++;break;

)

case2:a++;b++;break;

case3:a++;b++;break;

)

printf("a^d,b=%d\n",a,b);

)

A)a=l,b=0

B)a=2,b=l

C)a=l,b=l

D)a=2,b=2

答案:B

解析:

65.[单选题]以下4个数组定义中,。是错误的。

A)inta[7];

B)#defineN51ongb[N];

C)charc[5];

D)intn,d[n];

答案:D

解析:

66.[单选题]有以下程序段

Intk=0;

While(k=l)k++;

While循环执行的次数是0

A)无限次

B)有语法错,不能执行

C)一次也不执行

D)执行1次

答案:A

解析:知识点/选择题/C5循环结构程序设计/循环条件判定T

67.[单选题]以下符合C语言语法的实型常量是0

A)1.2E0.5

B)3.14159E

C)5E-3

D)E15

答案:C

解析:知识点/选择题/C2基本数据类型及表达式/常量T

68.[单选题]以下语句中,循环次数不为10次的语句是()。

A)for(i=l;i<10;i++);

B)i=l;do{i++;}while(i<=10);

C)i=10;while(i>0){­i;}

D)i=l;m:if(i<=10){i++;gotom;}

答案:A

解析:

69.[单选题]题号:88

下列字符序列中,可用作C标识符的一组字符序列是()。

A)S.b,sum,average,_above

B)class,day,lotus1,2day

C)#md,&12x,month,student_n!

D)D56,r_l_2,name,_st_l

答案:D

解析:

70.[单选题]以下程序有语法性错误,intmain(void){intN=3,k;voidfunl();〃函数声明…

k=funl(N);〃函数调用...}。有关错误原因的正确说法是()。(2分)

A)l.语句voidfunl();有错,它是函数调用语句,不能用void说明。

B)函数说明和函数调用语句之间有矛盾

01.函数声明语句不应该放在这里。

D)l.变量名不能使用大写字母

答案:B

解析:

71.[单选题]有以下程序

Fun(int

A,intb)

{if(a>b)return(a);

Elsereturn(b);

)

Main()

{intx=3,y=8,z=6,r;

R=fun(fun(x,y),2*z);

Printf("%d\n",r);

)

程序运行后的输出结果是______o

A)3

B)6

08

D)12

答案:D

解析:知识点/选择题/C6函数与编译预处理/函数嵌套调用T

72.[单选题]有以下程序

Intfl(intx,inty)

{returnx>y?x:y;}

Intf2(intx,inty)

{returnx>y?y:x;}

Main()

{inta=4,b=3,c=5,d,e,f;

D=f1(a,b);d=f1(d,c);

E=f2(a,b);e=f2(e,c);

F=a+b+c-d-e;

Printf("%d,%d,%d\n",d,f,e);

)

执行后输出的结果是_____o

A)3,4,5

B)5,3,4

05,4,3

D)3,5,4

答案:C

解析:知识点/选择题/C6函数与编译预处理/函数的定义与调用T

73.[单选题]当执行下面程序且输入:ABC时,输出的结果是

#include<stdio.h>

#include<string.h>

Main()

{charss[10]="12345";

Strcat(ss,"6789");

Gets(ss);printf("%s\n",ss);

)

A)ABC

B)ABC9

C)123456ABC

D)ABC456789

答案:A

解析:知识点/选择题/C7数组/字符串处理函数T

74.[单选题]以下能对一维数组a进行正确初始化的语句是()o

A)inta[10]=(0,0,0,0,0)

B)inta[10]={};

C)inta[]={0};

D)inta[10]={10*l};

答案:C

解析:

75.[单选题]若fp是指向某文件的指针,且未读到此文件末尾,则库函数feof(fp)的返回值是

A)E0F

B)0

0非零值

D)1

答案:B

解析:知识点/选择题/C11文件/文件结束标志T

76.[单选题]下面不正确的字符串赋值或赋初值的方式是()。

A)char*str;str="string";

B)charstr[7]=

C)charstr[10];strl="sring”;

D)charstrlL]="string",st2□二?12345678";

答案:C

解析:

77.[单选题]以下程序段char*alp[]={"ABC","DEF","GHI"};intj;puts(alptl]);

的输出结果是()o

A)A

B)B

C)D

D)DEF

答案:D

解析:

78.[单选题]若调用一个函数,且此函数中没有return语句,则正确的说法是

A)该函数没有返回值

B)该函数返回若干个系统默认值

C)能返回一个用户所希望的函数值

D)返回一个不确定的值

答案:D

解析:

79.[单选题]若有定义:floatx=l.5;inta=l,b=3,c=2;则正确的switch语句是。

A)switch(x)

case1.0:printf("*\n");

case2.0:printf("**\n");

B)switch((int)x);

{

case1:printf("*\n");

case2:printf("**\n");

}

C)switch(a+b)

(

case1:printf("*\n");

case2+1:printf("**\n");

)

D)switch(a+b)

(

case1:printf("*\n");

casec:printf("**\n");

}

答案:C

解析:

80.[单选题]在位运算中,操作数每左移一位,其结果相当于()。

A)操作数乘以2

B)操作数除以2

C)操作数除以4

D)操作数乘以4

答案:A

解析:

81.[单选题]以下错误的定义语句是____o

A)intX[][3]={{0},{1},{1,2,3});

B)intX[4][3]={{1,2,3},{1,2,3},{1,2,3}{1,2,3}};

Ointx[4][]={{1,2,3},{1,2,3},{1,2,3}{1,2,3}};

D)intx[][3]={l,2,3,4);

答案:C

解析:知识点/选择题/C7数组/二维数组定义初始化及引用T

82.[单选题]不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的

形式存在磁盘上()O

A)内存

B)缓冲区

C)文件

D)寄存器

答案:C

解析:

83.[单选题]有以下程序main(){doubled=3.2;intx,y;x=l.2;y=(x+3.8)/5.0;

printf(映d\n",d*y);}程序的输出结果是

A)3

B)3.2

C)0

D)3.07

答案:C

解析:

84.[单选题]若变量a是int类型,并执行了语句:a='A'+L6;,则正确叙述是_

A)a的值是字符C

B)a的值是浮点型

C)不允许字符型和浮点型相加

D)a的值是字符'A'的ASCH值加上1

答案:D

解析:知识点/选择题/C2基本数据类型及表达式/简单表达式运算T

85.[单选题]C语言的注释定界符是()o

A)(}

B)[]

C)\**\

D)*/

答案:D

解析:

86.[单选题]经过以下语句定义后,表达式z+=x>y?++x:++y的值为。。

Intx=l,y=2,z=3;

A)2

B)3

06

D)5

答案:C

解析:

87.[单选题]有以下程序

StructS{intn;inta[20];);

Voidf(structS*p)

{inti,j,t;

For(i=0;in-1;i++)

For(j=i+l;jn;j++)

If(p->a[i]>p->a[jl){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}

}

Main()

{inti;

StructSs={10,{2,3,1,6,8,7,5,4,10,9}};

F(&s);

For(i=0;i<s.n;i++)printf("%d,",s.a[i]);

}

程序运行后的输出结果是o

A)l,2,3,4,5,6,7,8,9,10,

B)10,9,8,7,6,5,4,3,2,1,

02,3,1,6,8,7,5,4,10,9,

D)10,9,8,7,6,1,2,3,4,5,

答案:A

解析:知识点/选择题/C9结构体与共用体/【

88.[单选题]以下字符中不是转义字符的是()o

A)\a'

B)\b'

C)\c'

D)'W

答案:C

解析:

89.[单选题]对for(表达式1;;表达式3)可理解为()。

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

答案:B

解析:

90.[单选题]C语言运算对象必须是整型的运算符是,

A)%

B)/

0=

D)<=

答案:A

解析:知识点/选择题/C2基本数据类型及表达式/运算符使用规则

91.[单选题]有以下程序,其中函数f的功能是将多个字符串按字典顺序排序

ttinclude<string.h>

Voidf(char*p[],intn)

{char*t;inti,j;

For(i=0;i<n-l;i++)

For(j=i+l;j<n;j++)

If(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];pLj]=t;}

)

Main()

{char*p[5]={"abc","aabdfg","abbd","dcdbe","cd");

F(p,5);

Printf("%d\n",strlen(p[l]));

)

程序运行后的输出结果是_____o

A)2

B)3

C)6

D)4

答案:D

解析:知识点/选择题/C8指针/【

92.[单选题]题号:87

C语言源程序的基本单位是()。

A)过程

B)函数

C)子程序

D)标识符

答案:B

解析:

93.[单选题]如果所有的变量按照下面的程序进行定义和声明,那么在main。函数中所有可用的变量

为()ovoidfun(intx){staticinty;...return;}intz;voidmain(){int

a,b;fun(a);...}

A)x,y

B)x,y,z

C)a,b,z

D)a,b,x,y,z

答案:C

解析:

94.[单选题]以下列出C语言常量中,错误的是o

A)OxFF

B)1.2e0.5

C)2L

D)'\72'

答案:B

解析:知识点/选择题/C2基本数据类型及表达式/常量T

95.[单选题]有以下程序

ftdefineP3

VoidF(intx){return(P*x*x);}

Main()

{printf("%d\n",F(3+5));)

程序运行后的输出结果是______o

A)192

B)29

025

D)编译出错

答案:D

解析:知识点/选择题/C6函数与编译预处理/函数的基本概念

96.[单选题]数组定义为inta[3][2]={l,2,3,4,5,6),值为6的数组元素是()。

A)a⑶⑵

B)a[2][l]

C)al[l]E2]

D)a[2][3]

答案:B

解析:

97.[单选题]下面程序

#include<stdio.h>

#include<string.h>

Main()

{char*pl="abc",*p2="ABC",str[50]="xyz";

Strcpy(str+2,strcat(pl,p2));

Printf("%s\n",str);

)

的输出是o

A)xyzabcABC

B)zabcABC

C)yzabcABC

D)xyabcABC

答案:D

解析:知识点/选择题/C8指针/指针与字符串处理函数T

98.[单选题]阅读以下函数

Fun(char*sl,char*s2)

{inti=0;

While(si[i]==s2[i]&&s2[i]!='\0')i++;

Return(si[i]=='\0'&&s2[i]=='\0');

)

此函数的功能是_____o

A)将s2所指字符串赋给si

B)比较si和s2所指字符串的大小,若si比s2的大,函数值为1,否则函数值为0

C)比较si和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D)比较si和s2所指字符串的长度,若si比s2的长,函数值为1,否则函数值为0

答案:C

解析:知识点/选择题/C8指针/【

99.[单选题]计算机能直接执行的程序是用()程序设计语言编写的。

A)C语言

B)机器语言

C)汇编语言

D)C++

答案:B

解析:

100.[单选题]以下正确的函数定义形式是()o

A)doublefun(intx,inty)

B)doublefun(intx;inty)

C)doublefun(intx,inty);

D)doublefun(intx,y);

答案:A

解析:

10L[单选题]设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为

A)不定值

B)4

03

D)1

答案:C

解析:知识点/选择题/C4选择结构程序设计/逻辑运算短路问题T

102.[单选题]Sizeof(float)是。。

A)一个双精度型表达式

B)一个整型表达式

C)一种函数调用

D)一个不合法的表达式

答案:B

解析:

103.[单选题]结构化程序由三种基本结构组成,三种基本结构组成的算法

A)可以完成任何复杂的任务

B)只能完成部分复杂的任务

C)只能完成符合结构化的任务

D)只能完成一些简单的任务

答案:C

解析:知识点/选择题/C1C语言概述/【

104.[单选题]设有如下定义:

Structss

{charname[10];

Intage;

Charsex;

}std[3],*p=std;

下面各输入语句中错误的是o

A)scanf("%d",&(*p).age);

B)scanf("%s",&std.name);

C)scanf("%c",&std[0Lsex);

D)scanf("%c",&(p->sex));

答案:B

解析:知识点/选择题/C9结构体与共用体/指针与结构体数组T

105.[单选题]表达式—不能用于判断“x和y不同时为零”),

A)x!=0|iy!=0

B)x||y

C)!(x==0|:y==0)

D)!(x==0&&y==0)

答案:C

解析:

106.[单选题]以下选项中合法的字符常量是_

A)"B"

B)'\010'

068

D)D

答案:B

解析:知识点/选择题/C2基本数据类型及表达式/常量T

107.[单选题]若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存

空间存入整数123的语句为()o

A)scanf("%d",p);

B)scanf("%d",&p);

C)scanf("%d",*p);

D)scanf("%d",**p);

答案:A

解析:

108.[单选题]当执行以下程序时,

Inta=l;

Do(a=a*a;}while(!a);

A)循环体将执行1次

B)循环体将执行2次

C)循环体将执行无限次

D)系统将提示有语法错误

答案:A

解析:

109.[单选题]题号:91

以下数值中,不正确的八进制数或十六进制数是OO

A)0xl6

B)16

0-16

D)Oxaaaa

答案:C

解析:

110.[单选题]sizeof(float)是()。(2分)

A)l.一个双精度型表达式

B)l.一个整型表达式

01.一种函数表达式

D)1.一个不合法的表达式

答案:B

解析:

111.[单选题]函数f定义如下,执行语句"sum=f(5)+f(3);”后,sum的值应为()。intf(intm)

{staticinti=0;ints=0;for(;i<=m;i++)s+=i;returns;}

A)21

B)16

015

D)8

答案:C

解析:

112.[单选题]若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元

Int*p;

P=malloc(sizeof(int));

则应填入o

A)int

B)int*

C)(*int)

D)(int*)

答案:D

解析:知识点/选择题/C9结构体与共用体/动态内存分配T

113.[单选题]设有以下说明语句:

Structx

{intx;floaty;charz;)example;

则下面的叙述中不正确的是()。

A)struct结构体类型的关键字

B)example是结构体类型名

C)x,y,z都是结构体成员名

D)structex是结构体类型名

答案:B

解析:

H4.[单选题]若有以下说明和语句,则输出结果是(

Charstr[]="\"c:\\abc.dat\"";

Printf("%s",str);

A)字符串中有非法字符

B)\"c:Wabc.dat\"

C)"c:\abc.dat"

D)"c:Wabe.dat"

答案:C

解析:

115.[单选题]以下各选项企图说明一种新的类型名,其中正确的是o

A)typedefvlint;

B)typedefv2=int;

C)typedefintv3;

D)typedefv4:int

答案:C

解析:知识点/选择题/C9结构体与共用体/基本数据类型重定义T

116.[单选题]若程序中有宏定义行:

A)宏定义行中定义了标识符N的值为整数100

B)在编译程序对C源程序进行预处理时用100替换标识符N

0对C源程序进行编译时用100替换标识符N

D)在运行时用100替换标识符

答案:B

解析:

117.[单选题]已有文本文件test,txt,其中的内容为:everyone!。以下程序中,文件test,txt已正确

为"读"而打开,由文件指针fr指向该文件,则程序的输出结果是o

#include<stdio.h>

Main()

{FILE*fr;chars[80];

Fgets(s,5,fr);

Printf("%s\n",s);

Fclose(fr);}

A)everyo

B)every

C)ever

D)everyone!

答案:C

解析:知识点/选择题/Cll文件/S字符串读取函数T

118.[单选题]有以下程序

voidswap(char*x,char*y)

(

chart;

t=*x;

*x=*y;

*y=t;

)

mainO

(

char*s1="abc",*s2="123";

swap(si,s2);

printf("%s,%s\n",si,s2);

)

程序执行后的输出结果是o

A)123,abc

B)abc,123

C)Ibc,a23

D)321,cba

答案:C

解析:

119.[单选题]以下叙述中错误的是o

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行

答案:D

解析:知识点/选择题/C1C语言概述/程序设计概述

120.[单选题]在C语言中,数字029是一个o

A)八进制数

B)十六进制数

C)十进制数

D)非法数

答案:D

解析:

121.[单选题]凡在函数中未指定存储类别的变量,其隐含的存储类别是

A)自动

B)静态

C)外部

D)寄存器

答案:A

解析:

122.[单选题]While(fabs(t)〈le-5)if(!s/10)break;循环结束的条件是()。

A)t>=le-5&&t<=-le-5&&s>-10&&s<10

B)fabs(t)<le-5&&!s/10

C)fabs(t)<le-5

D)s/10==0

答案:A

解析:

123.[单选题]数组名作为参数时,以下叙述正确的是()。(2分)

A)l.函数调用时是将实参数组的所有元素值传给形参。

B)l.函数调用时是将实参数组的第一个元素值传给形参。

01.函数调用时是将实参数组的首地址传给形参。

D)l.函数调用时是将实参数组的所有元素的地址传给形参。

答案:C

解析:

124.[单选题]执行下面的程序段

Intx=5;

Charz='A';

IntB;

B=((x&15)&&(z<tal));

后,B的值为_____o

A)0

B)1

C)2

D)3

答案:B

解析:知识点/选择题/CIO位运算/位运算T

125.[单选题]下面关于数组的描述不正确的是。

A)数组是构造数据类型

B)数组是基本数据类型

C)数组是相同数据类型的集合

D)同一个数组共用一个数组名

答案:B

解析:

126.[单选题]有以下程序

Main()

{chara[]={'a','b','c','d','e','f','g','h','\0'};inti,

I=sizeof(a);j=strlen(a);

Printf("%d,%d\n",i,j);

)

程序运行后的输出结果是______o

A)9,9

B)8,9

01.8

D)9,8

答案:D

解析:知识点/选择题/C7数组/字符数组内存分配及串长度T

127.[单选题]以下数组定义中不正确的是_

A)inta[2][3];

B)intb[][3]={0,l,2};

Ointc[100][100]={0};

D)intd[3][]={{1,2},{1,2,3},{1,2,3,4));

答案:D

解析:知识点/选择题/C7数组/二维数组定义初始化及引用T

128.[单选题]以下叙述正确的是()。

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

答案:C

解析:

129.[单选题]设变量已正确定义,以下()与其它switch语句不等价。

A)switch(op){

case'+':

printf(,f%d\nH,valuel+value2);break;

case'-':printf(,f%d\nH,valuel-value2);break;

case'*':printf(n%d\nM,valuel*value2);break;

default:printf(HError\nH);break;

B)switch(op){

default:printf(HError\nH);break;

case'*':printf(,f%d\nM,valuel*value2);break;

caseprintf(n%d\nH,valuel-value2);break;

case'+':printf(,f%d\nM,valuel+value2);break;

C)if(op!='+'&&op!='-'&&op!='*'){printf(,,Error\n,f);

else{

switch(op){

case'+':printf(n%d\nH,valuel+value2);break;

case':printf("%d'n",valuel-value2);break;

case'*':printf(n%d\nn,valuel*value2);break;

)

D)switch(op){

case'+':printf(,f%d\nH,valuel+value2);break;

caseprintf(,f%d\nn,valuel-value2);break;

case'*':printf(,r%d\nH,valuel*value2);break;

答案:D

解析:

130.[单选题]下列程序的输出结果是—

Main()

{chara[10]={9,8,7,6,5,4,3,2,l,0},*p=a+5;

Printf("%d",*—p);

)

A)非法

B)a[4]的地址

05

D)3

答案:C

解析:知识点/选择题/C8指针/指针处理一维数组T

131.[单选题]有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连

续结点。

Structnode

{intdata;

Structnode*next;

}*p,*q,*r;

现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是o

A)r->next=q;q->next=r->next;p->next=r;

B)q->next=r->next;p->next=r;r->next=q;

C)p->next=r;q->next=r->next;r->next=q;

D)q->next=r->next;r->next=q;p->next=r;

答案:A

解析:知识点/选择题/C9结构体与共用体/链表T

132.[单选题]执行以下程序段后,w的值为o

Intw='A',x=14,y=15;

W=((xLy)&&(w<'a'));

A)-l

B)NULL

01

D)0

答案:C

解析:知识点/选择题/C4选择结构程序设计/表达式运算T

133.[单选题]根据下面的定义,structworker{charname[18];intage;);structworker

w[100]={"John",16,"Paul",17,"Mary",17};能输出字符串'Mary'的语句是()。(2分)

A)1.printf("%s",w[2].name);

B)1.printf("%s",w[l].name);

C)1.printf("%s",w[2]);

D)1.printf("%s",w[l]);

答案:A

解析:

134.[单选题]以下不构成无限循环的语句或语句组是o

A)n=0;Do{++n;}while(n<=0);

B)n=0;While(1){n++;}

C)n=10;While(n);{n-;)

D)for(n=0,i=l;;i++)N+=i;

答案:A

解析:知识点/选择题/C5循环结构程序设计/循环条件判定T

135.[单选题]下列定义数组的语句中正确的是()o

A)Sdefinesize10charstrl[size],str2[size+2];

B)charstr[];

C)intnum['10'];

D)intn=5;inta[n][n+2];

答案:A

解析:

136.[单选题]下列选项中正确的语句组是o

A)chars[8];s={"Beijing");

B)char*s;s={"Beijing");

C)chars[8];s="Beijing";

D)char*s;s="Beijing";

答案:D

解析:知识点/选择题/C8指针/指针变量定义与初始化T

137.[单选题]当定义一个结构体变量时,系统分配给它的内存是()o

A)各成员所需内存量的总和

B)结构中第一个成员所需内存量

C)结构中最后一个成员所需内存量

D)成员中占内存量最大者所需的容量

答案:A

解析:

138.[单选题]题号:89

以下标识符中,不能作为合法的C用户定义标识符的是()。

A)a3_b3

B)void

C)_123

D)IF

答案:B

解析:

139.[单选题]以下程序调用findmax函数返回数组中的最大值。

Findmax(int*a,intn)

{int*p,*s;

For(p=a,s=a;p-a<n;p++)

If(_____)s=p;

Return(*s);

)

Main()

{intx[5]={12,21,13,6,18};

Printf("%d\n",findmax(x,5)):

}

在下划线处应填入的是o

A)p>s

B)*p>*s

C)a[p]>a[s]

D)p-a>p-s

答案:B

解析:知识点/选择题/C8指针/[

140.[单选题]以下正确地定义了一维整型数组a的语句组是()

A)inta(10);

B)intn=10,a[n];

C)intn;scanf("%d”,&n);inta[n];

D)#defineSIZE10intaLSIZE];

答案:D

解析:

141.[单选题]设有如下枚举类型定义

Enumlanguage{Basic=3,Assembly=6,Ada=100,COBOL,Fortran};

枚举量Fortran的值为。

A)4

B)5

0102

D)103

答案:C

解析:知识点/选择题/C9结构体与共用体/枚举类型

142.[单选题]C语言中下列运算符的操作数必须为整型的是

A)%

B)++

0/

D)=

答案:A

解析:

143.[单选题]有以下程序

Main()

{inti=l,j=l,k=2;

If((j++I|k++)&&i++)printf("%d,%d,%d\n",i,j,k);

)

执行后输出的结果是______o

A)l,l,2

B)2,2,1

02,2,2

D)2,2,3

答案:C

解析:知识点/选择题/C4选择结构程序设计/逻辑运算短路问题T

144.[单选题]以下说法正确的是()。(2分)

A)l.实参类型不必同形参类型一致。

B)l.实参可以是常量、变量和表达式。

C)形参可以是常量、变量和表达式

D)实参顺序与形参顺序无关。

答案:B

解析:

145.[单选题]执行下面程序段后,a的值为()。int*p,a=10,b=l;p=&a;a=*p+b;

A)12

B)ll

C)10

D)编译错误

答案:B

解析:

146.[单选题]文件操作的一般步骤是()。(2分)

A)l.读/写文件一修改文件一关闭文件

B)l.打开文件一读/写文件f关闭文件

01.读/写文件一打开文件一关闭文件

D)l.读文件一写文件一关闭文件

答案:B

解析:

147.[单选题]设有以下语句,若0<k<4,下列选项中对字符串的非法引用是()o

charstr[4]L2]={"aaa","bbb","ccc","ddd"},*strp[4];

intj;

for(j=0;j<4;j++)

strp[j]=str[j];

A)strp

B)str[k]

C)strp[k]

D)*strp

答案:A

解析:

148.[单选题]C语言规定,函数返回值的类型是由()。

A)retiwn语句中的表达式类型所决定

B)调用该函数时的主调函数类型所决定

C)调用该函数时系统临时决定

D)在定义该函数时所指定的函数类型所决定

答案:D

解析:

149.[单选题]在C语言中,int、char和short三种类型数据所占用的内存___。

A)均为2个字节

B)由用户自己定义

C)由所用机器的机器字长决定

D)是任意的

答案:C

解析:

150.[单选题]在C语言中,要求运算数必须是整型的运算符是()。

A)"

B)%

0!

D)>

答案:B

解析:

151.[单选题]在C语言中,int、char和short三种类型数据在内存中所占用的字节数(

温馨提示

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

评论

0/150

提交评论