《C语言程序设计》自测题,C语言程序设计 自测题

C语言程序设计  试卷一

[单选题]

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

A、3.500000

B、3

C、2.000000

D、3.000000

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

A、typedefv1int;

B、typedefv2=int;

C、typedefintv3;

D、typedefv4:int

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

A、int a[]={1,2};

B、char *a[3];

C、char s[10]="test";

D、int n=5,a[n];

14、假定w、x、y、z、m均为int型变量,有如下程序段:

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

m=(w

则该程序段执行后,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()

{intnum=0;

while(num<=2)

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

}

A)B)C)D)

1111

222

33

4

A、A)

B、B)

C、C)

D、D)

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组用户标识符,其中合法的一组是______。

A)FORB)4dC)f2_G3D)WORD

-subDOIFvoid

CaseSizeabcdefine

A、A)

B、B)

C、C)

D、D)

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

#defineM(x,y,z)x*y+z

main()

{inta=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()

{intx;

scanf("%d",&x);

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

elseprintf("%d/n",x++);

}

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

A、3

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);

}

A、101

B、6

C、5

D、4

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

A、i=*p;

B、*p=*&j;

C、i=&j;

D、i=**p;

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

#include

void fun(char *fname,char *st)

{ FILE *myf;int i;

myf=fopen(fname,"w");

for(i=0;i

fclose(myf);

}

main()

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

A、hello,

B、new worldhello

C、new world

D、hello,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()

{ inta[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()

{ inti,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

{ intx,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;

}

A、int

B、不确定

C、void

D、float

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(inta)

{intb=0;

static int c=3;

b++;c++;

return(a+b+c);

}

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

main()

{inta=2, i;

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

}

A)B)C)D)

7777

89107

911137

A、A)

B、B)

C、C)

D、D)

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

A、char s1[10];s1="chest";

B、char s2[]={'C','t','e','s','t'};

C、char s3[20]="Chest";

D、char *s4="Chest/n";

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

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

{ int i,j;

for(i=0;i

for(j=0;j

}

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()

{charc='z';

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

}

A、a

B、z

C、z-25

D、y

38、以下程序的结果是______。

inta,b;

void fun()

{a=100; b=200;}

main()

{inta=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;

intk;

}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、以下合法的赋值语句是______。

A、X=Y=100

B、D--;

C、X+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;

doublez;

for(i=1,z=x;i

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()

{ inta,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()

{intn1,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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值