C语言程序设计 自测题

C语言程序设计 试卷一

[单选题]

11、假定XYdouble型,则表达式X=2,Y=X+3/2的值是______

A3.500000

B、3

C、2.000000

D、3.000000

12、以下各选项企图说明一种新的类型名,其中正确的是______

Atypedef v1 int;

Btypedef v2=int;

Ctypedef int v3;

Dtypedef v4: int

13、以下定义语句中,错误的是______

Aint a[]={1,2};

Bchar *a[3];

Cchar s[10]="test";

Dint n=5,a[n];

14、假定 wxyzm均为int型变量,有如下程序段:

w=1;x=2;y=3;z=4;

m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;

则该程序段执行后,m的值是______

A、4

B、3

C、2

D、1

15、假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是______

A、3

B、6

C、10

D、20

16、以下程序的输出结果是______

main()

{ int num=0;

while(num<=2)

{ num++; printf("%d\n",num); }

}

A) B) C) D)

1 1 1 1

2 2 2

3 3

4

AA)

BB)

CC)

DD)

17、t为int类型,进入下面的循环之前,t的值为0。

while(t=1)

{ ......}

则以下叙述中正确的是______

A、循环控制表达式的值为0

B、循环控制表达式的值为1

C、循环控制表达式不合法

D、以上说法都不对

18、在C语言中,合法的长整型常数是______

A、OL

B、4962710

C、324562&

D、216D

19、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______

A、地址传递

B、单向值传递

C、由实参传给形,再由形参传回实参

D、传递方式由用户指定

20、以下有4组用户标识符,其中合法的一组是______

AFOR B4d Cf2_G3 DWORD

-sub DO IF void

Case Size abc define

AA

BB

CC

D、D)

21、以下程序的输出结果是______

#define M(x,y,z) x*y+z

main()

{ int a=1,b=2,c=3;

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

}

A、19

B、17

C、15

D、12

22、阅读以下程序:

main()

{ int x;

scanf("%d",&x);

if(x--<5)printf("%d\n",x);

else printf("%d\n",x++);

}

程序运行后,如果从键盘上输入5,则输出结果是______

A3

B、4

C、5

D、6

23、以下程序的输出结果是______

main()

{ int a,b;

for(a=1,b=1;a<=100;a++)

{ if(b>=10) break;

if(b%3==1)

{ b+=3; continue; }

}

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

}

A101

B6

C5

D4

24、若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是______

Ai=*p;

B*p=*&j;

Ci=&j;

Di=**p;

25、下面的程序执行后,文件test.t中内容是______

#include <stdio.h>

void fun(char *fname,char *st)

{ FILE *myf; int i;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

}

main()

{fun("test.t","new world"); fun("test.t","hello,");}

Ahello,

Bnew worldhello

Cnew world

Dhello,rld

26、整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是______

A、X||Y

B、X|Y

C、X&Y

D、X^Y

27、以下数组定义中不正确的是______

A、int a[2][3];

B、int b[][3]={0,1,2};

C、int c[100][100]={0};

D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

28、以下程序的输出结果是______

main()

{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

}

A、0650

B、1470

C、5430

D、输出值不定

29、以下程序的输出结果是______

main()

{ int i,a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]);

}

A、258

B、741

C、852

D、369

30、以下程序的输出结果是______

struct HAR

{ int x,y;struct HAR *p;} h[2];

main()

{ h[0].x=1;h[0].y=2;

h[1].x=3;h[1].y=4;

h[0].p=&h[1];h[1].p=h;

printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);

}

A、12

B、23

C、14

D、32

31、以下函数值的类型是______

fun(float x)

{ float y;

y=3*x-4;

return y;

}

Aint

B、不确定

Cvoid

Dfloat

32、以下程序的输出结果是______

main()

{ char st[20]="hello\0\t\\";

printf("%d%d\n",strlen(st),sizeof(st));

}

A、99

B、520

C、1320

D、2020

33、以下选项中合法的字符常量是______

A、"B"

B、'\010'

C、68

D、D

34、设有以下函数;

f(int a)

{ int b=0;

static int c=3;

b++;c++;

return(a+b+c);

}

如果在下面的程序中调用该函数,则输出结果是______

main()

{ int a=2, i;

for(i=0;i<3;i++) printf("%d\n",f(a));

}

A) B) C) D)

7 7 7 7

8 9 10 7

9 11 13 7

AA)

BB)

C、C)

D、D)

35、以下选项中,不能正确赋值的是______

Achar s1[10];s1="chest";

Bchar s2[]={'C','t','e','s','t'};

Cchar s3[20]="Chest";

Dchar *s4="Chest\n";

36、以下程序输出正确的是______

amovep(int *p,int (*a)[3],int n)

{ int i,j;

for(i=0;i<n;i++)

for(j=0;j<n;j++){ *p=a[i][j];p++; }

}

main()

{ int *p,a[3][3]={{1,3,5},{2,4,6}};

p=(int*)malloc(100);

amovep(p,a,3);

printf("%d%d\n",p[2],p[5]);free(p);

}

A、56

B、25

C、34

D、程序错误

37、以下程序的输出结果是______

main()

{ char c='z';

printf("%c",c-25);

}

A、a

B、z

C、z-25

D、y

38、以下程序的结果是______

int a,b;

void fun()

{ a=100; b=200; }

main()

{ int a=5,b=7;

fun();

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

}

A、100200

B、57

C、200100

D、75

39、以下程序的输出结果是______

union myun

{ struct

{ int x,y,z;}u;

int k;

}a;

main()

{ a.u.x=4;a.u.y=5;a.u.z=6;

a.k=0;

printf("%d\n",a.u.x);

}

A、4

B、5

C、6

D、0

40、以下合法的赋值语句是______

AX=Y=100

BD--;

CX+Y;

D、C=INT(A+B)

[填空题]

6、以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

file *myf; long f1;

myf=__ __("test.t","rb");

fseek(myf,(),SEEK_END);f1+ftell(myf);

fclose(myf);

printf("%1d\n",f1);

7、语句;X++;、++X;、X=X+1;、X=1+X;,执行后都使变量X中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)__ ___。

8、以上程序运行后的输出结果是______

main()

{ int i=10,j=0;

do

{ j=j+i; i--;}

while(i>2);

printf("%d\n",j);

}

9、以下函数的功能是:求x的y次方,请填空。

double fun(double x,int y)

{ int i;

double z;

for(i=1,z=x;i<y;i++) z=z*__ __;

return z;

}

10、若有定义语句:char s[100],d[100];int j=0,i=0;s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]){d[j]=______;j++;}

d[j]=0;

11、设有以下程序:

main()

{ int a,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

b=(*p1)/(*p2)+7;

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

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

}

执行该程序后,a的值为__ __,b的值为__ ___。

12、设有如下程序:

main()

{ int n1,n2;

scanf("%d",&n2);

while(n2!=0)

{ n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}

程序运行后,如果从键盘上输入1298,则输出结果为__ __。

13、若有如下结构体说明:

struct STRU

{ int a,b;char c: double d;

struct STRU *p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

______t[20]

14、以下程序段用于构成一个简单的单向链表,填空。

struct STRU

{ int x,y;

float rate;

______ p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值