模拟题c语言答案_c语言模拟题及答案

其他范文 时间:2020-02-27 15:09:06 收藏本文下载本文
【www.daodoc.com - 其他范文】

模拟题c语言答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言模拟题及答案”。

此答案为自己所出,若有不对之处请谅解,并希望能留言

单选题(共60题,每题1分,共60分)1.下列符号串中,属于C语言合法标识符的个数为(B)。

_1_2_3,a-b-c,float,9cd,a3b4

A:1

B:2

C:3

D:4 2.下列能为字符变量 a 赋值的是:char a=(C)。

A:'ab'

B:“a”

C:''

D:“” 3.在下列字符序列中,合法的标识符是(B)。

A:P12.a

B:stud_100

C:$water.1

D:88sum 4.下列用于printf函数的控制字符常量中,代表tab的字符常量是(B)。

A:'b'

B:'t'

C:'r'

D:'f' 5.下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。

A:'b'

B:'t'

C:'r'

D:'n' 6.如有以下程序:unsigned int a=6;int b=-20;char c;c=(a+b>6);则c的值为(C)。(int转换为unsigned)

A:6

B:-14

C:1

D:0 7.关于C语言,以下不正确的叙述是(B)。

A:在C语言程序设计中,逗号运算符的优先级最低

B:在C语言程序设计中,var和VAR是两个相

同的变量

C:C语言也支持重载

D:此处的两个语句int a;a=-13.06;在程序编译中将会提示出错 8.若有定义: int a=2,*p;float x=1, y=2;char e=‘w’;

则以下用法不正确的是(B)。

A:printf(“%c”,e+a);

B:p=&x;

C:a *=y+x;

D:x=y=e;9.int x=20;printf(“%dn”,~x);以上程序片段的输出是(B)。

A:235

B:-21

C:-20

D:-11 10.在C语言中,要求运算数必须是整型的运算符是(D)。

A:/

B:++

C:!=

D:% 11.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(结果保留两位小数)(A)。

A:2.50

B:2.75

C:3.50

D:0.00 12.以下运算符中优先级最低的是(C)。

A:&&(第三)

B:&(第一)

C:||(第四)

D:|(第二)

13.设有定义语句:char c1=1,c2=1;,则以下表达式中值为零的是(A)。

A:c1^c2

B:c1&c2

C:~c2

D:c1|c2 14.以下程序的输出结果是

#include void main(){

unsigned char a,b;

a=0x0a|3;

b=0x0a&3;

printf(“%d %dn”,a,b);}(B)。

A:2 11

B:11 2

C:7 13

D:13 7 15.如果int i = 4, 则printf(“%d”,-i--)结果是__,i的值是。(A)

A:-4 3

B:-3 3

C:-3 4

D:-4 4 16.若x=2,y=3则x&y的结果是(B)。

A:1

B:2

C:3的输出

D:5 17.下列程序的输出是(B)。main(){int x;printf(“%dn”,(x=3*5,x*2,x+10));}

A:15

B:25

C:30

D:40 18.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为(C)。x=(i=4,j=16,k=32)

A:4

B:16

C:32

D:其他值

19.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)。

A:7

B:8

C:6

D:2

20.以下程序运行后的输出结果是(A)。main(){int a,b;a=50;b=90;printf(“%dn”,(a,b));}

A:90

B:50 90

C:50

D:其他

21.以下程序的运行结果是(A)。void main(){

int a=4;char ch=‘a’;

printf(“%dn”,(a&2)&&(ch>‘A’));}

A:0

B:1

C:2

D:3 22.以下程序的输出是(D)。#include

main()

{ int i,j=4;

for(i=j;i

case 1: printf(“*”);break;

case 2: printf(“#”);break;} }

A:*###

B:**##

C:***#

D:****# 23.有如下程序片段: int i = 0;while(i++

A:2

B:3

C:4

D:以上都不是 24.有以下程序段 main(){ int i=1,sum=0,n;

scanf(“%d”,&n);do { i+=2;sum+=i;}while(i!=n);printf(“%d”,sum);} 若使程序的输出值为15,则应该从键盘输入的n的值是(D)。

A:1

B:3

C:5

D:7 25.以下程序的输出是(A)。

#include void fun(int *p){

int a=10;

p=&a;

++a;} void main(){

int a=5;

fun(&a);

printf(“%dn”,a);}

A:5

B:6

C:10

D:11 26.以下关于函数的说法中正确的是(C)。

A:定义函数时,形参类型说明可放在函数体内

B:return语句后边的值不能为表达式

C:如果函数类型与返回值类型不一致,以函数类型为准

D:如果形参与实参的类型不一致,以实参为准

27.已知有定义:int *p();则以下说法正确的是(C)。

A:指向int型的指针变量

B:int型的指针数组

C:一个函数,该函数的返回值是指向int型的指针变量

D:一个指向函数的指针变量,该函数的返回值为int型

28.若有如下程序: void s(char *m,int n){

*m=*m+3;n=n+3;

printf(“%c,%c,”,*m,n);} void main(){

char p=‘b’,q=‘B’;

s(&q,p);

printf(“%c,%cn”,p,q);}则程序运行后的输出结果是(A)。

A:E,e,b,E

B:e,E,b,F

C:E,e,e,E

D:e,E,b,E 29.C语言规定函数返回值的类型由(A)。

A:在定义时所指定的函数类型所决定

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

C:return语句中的表达式类型所决定

D:调用该函数时系统临时决定

30.要在c语言中求正弦30度的值,可以调用库函数,可用格式为(D)。

A:sin(30)

B:sin(30.0)

C:sin((double)30)

D:sin(3.1415/6)31.在C语言程序设计中,简单变量作为实参时,它和对应形参之间的数据的传递方式是(B)。

A:地址传递

B:单向值传递

C:由实参传给形参,再由形参传给实参

D:由用户指定传递方式 32.以下程序的输出为(C)。int a=2;int f(int *a)

{

return(*a)++;} void main(){

int s=0;

{int a=5;

s+=f(&a);

}

s+=f(&a);

printf(“%d %dn”,a,s);}

A:2 7

B:2 10

C:3 7

D:3 11 33.以下程序输出结果是(D)。#include int *fun(){ int a[4],k;for(k=0;k

return(a);} void main(){ int *p,j;p=NULL;p=fun();for(j=0;j

A:输出0 0 0 0

B:输出0 1 2 3

C:输出1 1 1 1

D:输出不确定值 34.以下程序的运行结果是(D)。void fun(int *n){

static int m=2;

*n*=m-1;m+=2;} void main(){

static int m=1;

int i;

for(i=1;i

fun(&m);

printf(“%dn”,m);}

A:8

B:10

C:11

D:15 35.下面对typedef的叙述中不正确的是(B)。

A:用typedef可以定义各种类型名,但不能用来定义变量

B:typedef和#define都是在预编译时处理的C:用typedef只是将已存在的类型用一个新的标识符来代表

D:使用typedef有利于程序的通用和移植 36.要使用内存分配函数malloc,需要引入的头文件是(BC)。

A:stdio.h

B:stdlib.h

C:malloc.h

D:memory.h

37.以下宏定义中,不会引起二义性的宏个数为(A)。1)#define POWER(x)x*x 2)#define POWER(x)(x)*(x)3)#define POWER(x)(x*x)4)#define POWER(x)((x)*(x))(没有二义性)

A:1个

B:2个

C:3个

D:4个

38.若有二维数组定义语句:int a[4][5];则下面对元素a[2][3]不正确的引用方式是(B)。

A:*(&a[2][3])

B:*(a+5*2+3)可以换为(&a[0][0]+5*2+3)

C:*(a[2]+3)

D:*(*(a+2)+3)39.若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为(B)。(不知怎么下面是m,应该是n把,不清楚!)

A:j*m+i

B:i*m+j

C:i*m+j-1

D:j*m+i-1

40.有字符数组a[10]={‘A’,‘’}和b[10]={‘B’},则以下正确的输出语句是(D)。

A:puts(a,b);

B:printf(“%s %sn”,a[],b[]);

C:putchar(a,b);

D:puts(a);puts(b);41.下列程序的输出结果是(D)。#include #include void main(){

char p1[20]=“abcd”,p2[20]=“ABCD”;

char str[50]=“xyz”;

strcpy(str+2,strcat(p1+2,p2+1));

printf(“%sn”,str);}

A:xyabcAB

B:abcABz

C:Ababcz

D:xycdBCD 42.以下程序执行后输出结果是(C)。void main()

{

char a[]=“movie”,b[10]=“movie”;

printf(“%d %dn”,sizeof(a),sizeof(b));}

A:5 5

B:6 6

C:6 10

D:10 10 43.以下程序的输出结果是(A)。void main(){

char *p[10]={“abc”,“aabdfg”,“dcdbe”,“abbd”,“cd”};

printf(“%dn”,strlen(p[4]));}

A:2

B:3

C:4

D:编译出错 44.已知有以下的说明,int a[]={8,1,2,5,0,4,7,6,3,9};那么a[*(a+a[3])]的值为(B)。

A:5

B:0

C:4

D:7 45.以下程序输出结果是(B)。#include main(){

int a[2][2]={1,2,3,4},(*p)[2];

p=a;

p++;

printf(“%dn”,**p);}

A:2

B:3

C:4

D:以上都不对

46.设char ch,str[4],*strp;,则正确的赋值语句是(C)。

A:ch=“CBA”;

B:str=“CBA”;

C:strp=“CBA”;

D:*strp=“CBA”;47.下面程序的运行结果是(C)。#include #include fun(char *w,int n){char t,*s1,*s2;s1=w;s2=w+n-1;while(s1

A:7654321

B:1714171

C:1711717

D:7177171 48.以下程序的输出是(C)。#include

main(){ char a[]=“language”,*p;p=a;while(*p!=‘u’){ printf(“%c”,*p-‘u’+‘U’);p++;} }

A:LANGUAGE

B:language

C:LANG

D:LANGuage 49.struct s1 {

char a[3];

int num;}t={‘a’,‘b’,‘x’,4},*p;p=&t;则输出为x的语句是(B)。

A:printf(“%cn”,p->t.a[2]);

B:printf(“%cn”,(*p).a[2])

C:printf(“%cn”,p->a[3]);

D:printf(“%cn”,(*p).t.a[2]);

50.以下程序的输出是(D)。#include main(){

struct st

{int x;

int y;

}cnum[2]={1,3,2,7};

printf(“%dn”,cnum[0].y/cnum[0].x*cnum[1].x);}

A:0

B:1

C:3

D:6 51.以下对age的非法引用是(B)。struct student {int age;

int num;}stu1,*p;p=&stu1;

A:stu1.age

B:student.age

C:p->age

D:(*p).age 52.以下程序的输出是(B)。#include union myun {struct {int x,y,z;}u;int k;}a;void main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(“%dn”,a.u.y);}

A:4

B:5

C:6

D:0 53.若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式字符串应是(C)。

A:“ab+”

B:“rb+”

C:“wb+”

D:“ab” 54.若执行fopen函数时发生错误,则函数的返回值是(B)。

A:地址值

B:0

C:1

D:EOF 55.要打开文件c:usertext.txt用于追加数据,正确的语句是(C)。

A:fp=fopen(“c:turboc2abc.txt”,“r”);

B:fp=fopen(“c: urboc2abc.txt”,“r”);

C:fp=fopen(“c: urboc2abc.txt”,“a+”);

D:fp=fopen(“c:turboc2abc.txt”,“a+”);56.在执行fopen函数时,ferror函数的初值是(D)。

A:TRUE

B:-1

C:1

D:0

57.#include main(){

char * s1=“Hello”,*s2=“Beijing”;

FILE *pf=fopen(“abc.dat”,“wb+”);

fwrite(s2,7,1,pf);

fseek(pf,-1,SEEK_CUR);

fwrite(s1,5,1,pf);

fclose(pf);} 以上程序执行后,文件abc.dat中的内容为(C)。

A:Hellong

B:Beijing Hello

C:BeijinHello

D:Hello 58.若fp为文件指针,且文件已正确打开,i为整型数据,以下语句的输出结果是(B)。fseek(fp,0,SEEK_END);i=ftell(fp);printf(“i=%dn”,i);

A:fp所指的文件记录长度

B:fp所指的文件长度,以字节为单位

C:fp所指的文件长度,以比特为单位

D:fp所指的文件当前位置,以字节为单位 59.函数调用语句:fseek(fp,-20L,2);的含义是(C)。

A:将文件位置指针移到距离文件头20个字节处

B:将文件位置指针从当前位置向后移动20个字节

C:将文件位置指针从文件末尾处后退20个字节

D:将文件位置指针移到离当前位置20个字节处

60.若将文件指针的读写位置指针移动到距离文件头200个字节的位置,对应正确的操作是(A)。

A:fseek(fp, 200, SEEK_SET)

B:fseek(fp, 200, SEEK_CUR)

C:fseek(fp, 200, SEEK_END)

D:ftell(200)

下载模拟题c语言答案word格式文档
下载模拟题c语言答案.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文