C语言复习资料答案 下载本文

内容发布更新时间 : 2024/6/2 11:15:30星期一 下面是文章的全部内容请认真阅读。

4. 设int x[]={1,2,3,4,5,6},*p=x; 则值为3的表达式是 ( A )

A) p+=2, *p++ B) p+=2, *++p C) p+=3 D) p+=2 , ++*p 5. 若有定义及赋值:

int a[5][5], (*p)[5]; p=a; 则下列各式中表示地址的表达式为( C ) A) a[3][3] B) *(*(p+1)) C) a[2]+2 D) *(*(a+3)+1) 6. 设有一下语句

int a[4][2]={1,2,3,4,5,6,7,8}; 则*(*(a+2)+1) ( D ) A)3 B)4 C)5 D)6

四)字符串及字符串数组涵义 例题:

1. 不正确的赋值或赋初值方式是( B )

A)char str[]=”Hell0 2006” B)char str[20];str=”Hell0 2006”; C) char *p=”Hell0 2006” D) char *p;p=”Hell0 2006” 2. 下列语句中合法的数组定义是( D )

A)char a[3][]={‘abc’,’12’,”fox”} B)char a[][3]={‘abc’,’12’,”cd”} C)char a[3][]={‘a’,”12”,”fox”} D)char a[][3]={“a”,”12”,”cd”}

3. 以下语句或语句组中,能正确进行字符串赋值的是 ( D )

A)char *sp; *sp=\ B)char s[10]; s=\C)char s[10]; *s=\ D)char *sp=\

八、宏定义、结构体与共用体 一)宏定义 例题:

1. 运行程序:

#define Tap(X) 2*X+1 main()

{ int a=6,k=2,m=1; a+=Tap(k+m); printf(“%d\\n”,a);

}则输出结果是( A )

A)12 B)13 C)7 D)6 2. 对于以下宏定义

# define M(x) x*x

# define N(x,y) M(x)+M(y)

宏调用N (2, 2+5)执行后,值为( A ) A) 21 B) 16 C) 9 D) 19

二)结构体 例题:

1. 设有结构体及其数组和指针变量的定义语句

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

则下列表达式中不正确的表示结构体成员的是( B ) A)(*p).x B) (p+1).x C)y[0].x D)(&y[1])->x

2. 设有定义struct st { int x ; float y; } time, *t; t=&time;则对于time 中成员x

的正确引用是( C )

A) w.time.x B) t. x C) (*t). x D) time->x

三)共用体 例题:

1. 若定义union ex{int I;float f;char a[10];} x;则sizeof(x)的值是( C )

A)4 B)6 C)10 D)16

2. 设有下列结构型变量w的定义,则表达式”sizeof(w)”的值是( C )

struct { long num; char name[15];

union{float y;short z;} yz; }w;

A)19 B)20 C)23 D)25

四)typedef 例题:

1. 以下语句中,指针p的data域正确的引用方式为( B )

typedef struct node { int data;

struct node lchile,rchild; }Btree; Btree *p;

A)p.data B)p->data C)(*p)->data D)p[data] 2. 设有如下说明

typedef struct ST

{ long a; int b; char c[2]; } NEW;

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

A)以上的说明形式非法 B)ST是一个结构体类型 C)NEW是一个结构体类型 D)NEW是一个结构体变量 3. 以下对结构体类型变量td的定义中,错误的是 ( C )

A)typedef struct aa B)struct aa { {

int n; int n; float m; float m; }AA; } ;

AA td; struct aa td; C)struct D)struct { {

int n; int n; float m; float m; }aa; }td; struct aa td;

九、位运算 例题:请计算:(题有变) 4&6=4 3|5=7 ~4=-5 5>>2=1 5<<2=20

十、文件 例题:

1. 为了向二进制文件尾部追加内容,打开文件的方式应采用( A ) A) ‘ab’ B) ‘rb+’ C) ‘wb’ D) ‘wb+’ 2. 设有下面结构体 struct st

{char name[8]; int num; float s[4]; }student[50];

若数组student中已有数据,将这些元素写到磁盘文件中,下列不正确的形式是( C)。

A)fwrite(student,sizeof(struct st),50,fp); B)fwrite(student,50*sizeof(struct st),1,fp); C)fwrite(student,25*sizeof(struct st),25,fp);

D)for(I=0;I<50;I++) fwrite(student+i,sizeof(struct st),1,fp);

3. 当顺利地执行了文件关闭操作时,fclose的返回值是( C )

A)-1 B)TURE C)0 D)1

模拟试卷1答案

一、选择题(40分) 1-5 CBACD 6-10 BDCAA 21-25 CDBDC 26-30 ABCCB

二、填空题(每空2分,共20分) 1.F10 2.11.5 3.30 6.12345 7.ef 8.16

11-15 CADDC 31-35DCBBD

16-20 ABDBC 36-40 CCBCA

4.2

9.feof(fp) 5.3 10.7

三、阅读理解题 1.35 2.3,4 3.228

四、编程题

1.#include void main( ) { int i; float s;

for(i=1;i<=99;i=i+2) { s=s+1.0/i; }

printf(“.2f”s);

}

2.#include void main( ) { int i,j,k;

for(i=5;i>=1;i--) { for(j=1;j<=i;j++) printf(“ “); for(k=1;k<=i;k++) printf(“%d”,i); printf(“\\n”); } }

3.#include

#include main()

{ char s[100]; int i;

gets(s); i=1; while(s[i]!=?\\0?)

{ if(s[i]

i=i+1;}

if(s[i]= =?\\0?) printf(“yes”); else printf(“no”); }

4.35 5.29

模拟试卷2答案

一、选择题(40分) 1-5 ADCBA 6-10 CDACB 11-15 CACBA 21-25 CAABC 26-30 BDBBB 31-35BADBA 16-20 DADCC 36-40 DCBDA

二、填空题(每空2分,共20分) 1.十六 2.18 3.int 6.0 7.20 8.Strcat(s1,s2)

三、阅读理解题 1.65,A 2.2 3.10 65,A 3.141590,3.1416

四、编程题

1.#include void main( ) { int i, s=0;

for(i=5;i<=500;i=i+52) { s=s+i; }

printf(“%d”s);

}

2.#include void main( ) { int i,j,k;

for(i=1;i< =5;i++) { for(j=5;j>=i;j--) printf(“ “); for(k=i;k>=1;k--) printf(“%d”,k); printf(“\\n”); } }

3.#include

int main()

{ char s[100]=”Hello 2009, We are ready.”; int n=0; int i=0;

while(s[i]!=?\\0?)

{ if(s[i]<=?z?&&s[i]>=?a?) {s[i]=s[i]-32;n=n+1;} else if(s[i]<=?Z?&&s[i]>=?A?) n=n+1;

4.0 5.= = 9.16 10.1

4.5 5.-15

19