C语言练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.设int a[3][4]={{7.5,8.2},{2.3,3.7,1.2},{1.0,3.4}};,则a[2][1]的值是___________。

2.文件使用方式“rb+”的含义是 。

3.设typedef struct {int a ;char s[10];}TYPE ;

TYPE u1;

则printf (“%d\n ”,sizeof (u1));的输出是 。

4.若定义:m=2,n=3,i=4,j=5,a=8,b=9,执行(a=m>n )&&(b=i>j )后,b 的值是 。

5.设有char *a=”ABCD ”,则printf(“%c ”*a)的输出是

6.请写出数学式 ab

ab 222

的C 语言表达式是 。 7.调用系统函数strcmp (),必须在程序的开头写上一条文件包含命令是___________。

8.设char a[20]={……NANJING ”},*p=a+2;,则*(p+2)的值是___________。

9. 有下面的程序段,请问输出结果是 。

#define N 8*x+x*x

x=2; s=5*N; printf(“%d ”,s)

10.执行以下程序后a 的值为 。

int a,k=16,m=3,*p1=&k,*p2=&m;

a=(*p1)/(*p2);

11.设有宏定义#define X(n) 3*n ,则printf (“%f\n ”,6.0/X(2));的输出结果是___________。

12.下面函数要求计算两个整数x,y 之和,并通过形参z 传回结果值,请填空, void add( int x,int y, )

{ *z=x+y;}

13.下面程序的输出结果为 。

int k;

char *str[6]={“abcd”,“efgh”,“ijkl”,“mnop”,“qrst”,“uvwx”},**p=str;

printf(“%s\n ”, *(p+3));

14.设有定义语句“struct {int x ;int y ;}d[2]={{1,3},{2,7}};”,则 printf (“%d\n ”,d[1].x );的输出是

15.函数中未指定存储类型的局部变量,其隐含的存储类型是。

16.设float a[3][4]={{7.5,8.2},{2.3,3.7,1.2},{1.0,3.4}};,则a[2][1]的值是___________。

17.以下程序的输出结果是

char s1[20]=”abcw12d”,s2[]=”123”;

main( )

{ strcpy(s1,s2);

printf(“%s\n”, s1); }

18.char *p=”string”; 则prinf(“%c”,*p)的结果是。

19.设有char*s[5]={“forturn”,”C++”,”basic”},执行prinf(“%s”,*(s+2));将输出______ _______。

20.下面程序的输出结果第一行为。

int k;

ch ar *str[6]={“abcd”,“efgh”,“ijkl”,“mnop”,“qrst”,“uvwx”},**p=str;

printf(“%c\n”,*(p[1]));

printf(“%s\n”, *(p+3));

21.若文件型指针fp已指向某文件的末尾,则函数feof(fp)的返回值是___________。

1.合法的C语言常量是()

A ox3T

B 039

C T

D ‘\t’

2.设int a=7;float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是()

A. 2.75

B. 3.25

C. 2.5

D. 0.0

3.下面语句或声明,正确的是()

A a=-2==4

B int c=(a+b)++

C a%=3.1

D fload a=b++=c

4.设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是( )

A. scanf("%f",&x[6]);

B. scanf("%lf",x[6]);

C. scanf("%lf",p+6);

D. scanf("%lf",p[6]);

5.定义如下变量及数组:int k,y[2][3]={2,4,6,8,10,12};

则下面语句的输出结果是()

for(k=0;k<2;k++)

printf(“%d”,y[1-k][k+1]);

A.10,4

B.8,12

C.6,10

D.10,6

6.设int a=2,b=5;,结果为0的表达式是()

A. a%b

B. a&&b

C.!(a=b)

D. a!=b

7.若有以下定义,则值为4的表达式是()。

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

A.p[1][1] B.p++,*(p+1)

C.a[2][2] D.*(p+1*4+1)

8.若有如下结构定义:

struct stu

{int n,char m[20];}x1;

则下面正确的语句是()

A.scanf(“%d,%c”,x1);

B.scanf(“%d,%c”,&x1);

C.scanf(“%d”,x1.n);

D.scanf(“%s”,x1.m);

9.下面程序的输出结果是()

#include

main ()

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

y=*p--;

printf ("%d,%d", *p,y );}

A. 2,2

B. 3,3

C. 2,3

D. 3,2

10.设int a=7;float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是()

A. 2.75

B. 3.25

C. 2.5

D. 0.0

11.设int i=l, k=2;, 则错误的循环语句是()

A. for(i=0,k=k-1;i++,k++)s;

B. for(;k-1;i++)s;

相关文档
最新文档