C语言程序设计第三阶段练习.docx

上传人:b****4 文档编号:4114830 上传时间:2022-11-28 格式:DOCX 页数:9 大小:116.91KB
下载 相关 举报
C语言程序设计第三阶段练习.docx_第1页
第1页 / 共9页
C语言程序设计第三阶段练习.docx_第2页
第2页 / 共9页
C语言程序设计第三阶段练习.docx_第3页
第3页 / 共9页
C语言程序设计第三阶段练习.docx_第4页
第4页 / 共9页
C语言程序设计第三阶段练习.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

C语言程序设计第三阶段练习.docx

《C语言程序设计第三阶段练习.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第三阶段练习.docx(9页珍藏版)》请在冰豆网上搜索。

C语言程序设计第三阶段练习.docx

C语言程序设计第三阶段练习

考试科目:

《C语言程序设计》第章至第章(总分100分)

 

一单选题(共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

1.如有以下定义“inty[4][4]={1,2,3,4,5,6,7,8,9,10},*pyl=y[l],(*py2)[4]=y;”,则不能正确引用值为7的数组元素的表达式是()。

(2分)

A.*(y[l]+2)

B.*(y+1)+2

C.pyl[2]

D.py2[1][2]

2.有以下程序

voidfun(char*c,intd)

{*c=*c+1;d=d+1;

printf(“%c,%c,”,*c,d);

}

main()

{chara=’A’,b=’a’;

fun(&b,a);printf(“%c,%c\n”,a,b);

}

程序运行后的输出结果是()。

(2分)

A.B,a,B,a

B.a,B,a,B

C.A,b,A,b

D.b,B,A,b

3.下面对结构数据类型的叙述中,()是错的。

(2分)

A.结构变量可以在说明结构类型后定义,也可在说明结构时定义

B.结构可由若干个成员组成,各成员的数据类型可以不同

C.定义一个结构类型后,编译程序要为结构的各成员分配存储空间

D.结构变量的各成员可通过结构变量名和指向结构变量的指针引用

4.若有以下的说明,则对初值中字符'a'的引用方式为()。

staticstructst

{charch;doublex;chara[];}

structstc[2][2]={{'a',3.5,'bc'},{'c',4.5,'de'},{'m',8.6,'abc'}};

(2分)

A.c.ch

B.c[0][0].ch

C.c[1][1].ch

D.a[0]

5.以下枚举类型的定义中正确的是()。

(2分)

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three};

C.enuma={“one”,“two”,“three”};

D.enuma{“one”,“two”,“three”};

6.若有定义:

int*p[3];,则以下叙述中正确的是()。

(2分)

A.定义了一个基类型为int的指针变量p,该变量具有三个指针

B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

C.定义了一个名为*p的整型数组,该数组含有三个int类型元素

D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

7.有以下程序

#include

main()

{FILE*fp;inti,k=0,n=0;

fp=fopen(“d1.dat”,”w”);

for(i=1;i<4i=""fprintf=""fp=""d="">

fclose(fp);

fp=fopen(“d1.dat”,”r”);

fscanf(fp,”%d%d”,&k,&n);printf(“%d%d\n”,k,n);

fclose(fp);

}

执行后输出结果是()。

(2分)

A.12

B.1230

C.123

D.00

8.在C语言中,文件若按数据的组织形式分类可分为()。

(2分)

A.字符文件和数字文件

B.ASCII文件和二进制文件

C.顺序文件和随机文件

D.以上均不对

9.有以下程序

#include

main()

{char*p=“abcde\Ofghjik\0”;

printf(“%d\n”,strlen(p));

}

程序运行后的输出结果是()。

(2分)

A.12

B.15

C.6

D.5

10.运行下列程序后的输出结果是()。

main()

{charstr[][10]={"China","Beijing"},*p=*str;

printf("%s\n",p+10);}

(2分)

A.China

B.Beijing

C.ng

D.ing

11.已定义以下函数

fun(int*p)

{return*p:

}

该函数的返回值是()。

(2分)

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

12.若有如下说明,则()的叙述是正确的。

structst

{inta;

intb[2];

}a;

(2分)

A.结构体变量a与结构体成员a同名,定义是非法的

B.程序只在执行到该定义时才为结构体st分配存储单元

C.程序运行时为结构体st分配6个字节存储单元

D.类型名structst可以通过extern关键字提前引用(即引用在前,说明在后)

13.若有以下说明:

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为6的表达式是()。

(2分)

A.*p+6

B.*(p+6)

C.*p+=5

D.p+5

14.有以下程序

main()

{char*s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

执行后输出结果是()。

(2分)

A.n,two

B.t,one

C.w,one

D.o,two

15.若有说明:

intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。

(2分)

A.p=q;

B.*p=*q;

C.n=*q;

D.p=n;

16.对于用"r"方式打开文件下列说法正确的是()。

(2分)

A.用"r"方式打开的文件只输入不能输出

B.用"r"方式打开的文件只能输出,不能输入

C.用"r"方式可以打开任何文件

D.以上均不对

17.已定义以下函数

fun(char*p2,char*p1)

{while((*p2=*p1)!

=‘\0’){p1++;p2++;}}

函数的功能是()。

(2分)

A.将p1所指字符串复制到p2所指内存空间

B.将p1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查p1和p2两个指针所指字符串中是否有‘\0’

18.有以下程序段

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是()。

(2分)

A.5

B.6

C.8

D.9

19.设有说明:

uniondata{

inti;floatf;

struct{

intx;chary;

}s;

doubled;

}a;

在16位微机环境下,int类型的整数占用两个字节,则变量a在内存中所占字节数为()。

(2分)

A.8

B.17

C.9

D.15

20.以下叙述中错误的是()。

(2分)

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B.在程序结束时,应当用fclose函数关闭已打开的文件

C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D.不可以用FILE定义指向二进制文件的文件指针

二填空题(共5题,总分值30分)

21.下面的函数用于比较两个给出的C字符串。

按比较结果,函数将返回下列函数值:

若:

s1=s2返回0

s1返回负值

s1>s2返回正值,请填空。

[程序]

scmp(char*s1,char*s2)

{while(*s1)

if(___*s1-*s2______)

return(___*s1-*s2________);

else{

s1++;s2++;

}

return(____0_____);}

(6分)22.下面的程序用来统计文件中字符的个数,请填空。

#include"stdio.h"

main()

{FILE*fp;

longnum=0;

if((fp=fopen("filename.dat","r"))==____null_____)

{printf("cannotopenfile!

\n");

exit(0);

}

while(___!

feof(fp)______)

{fgetc(fp);

___num++______;

}

fclose(fp);

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

}

(6分)23.以下程序输出整形变量a的值,错误的语句是___(4)______,应改为___p=&a______。

(1)main()

(2){inta,*p;

(3)a=100;

(4)*p=a;

(5)printf(“a=%d”,*p);

(6)}

(6分)24.运行程序后输出的第一行内容是____n1=t,n2=u_____、第二行内容是__a=tesuetring,b=tesusfg_______。

#include

main()

{staticchara[50]="test";

charb[40],*p;

p=a;

*(p+3)+=1;

strcpy(b,"abcdefg");

strcat(a,"string");

strncpy(b,a,5);

printf("n1=%c,n2=%c\t",*p,*(p+3));

printf("a=%s,b=%s\n",a,b);}

(6分)25.C程序中,数据可以用_____二进制____和_____ASSCII____两种代码形式存放。

(6分)

三编程题(共2题,总分值30分)

26.p的近似值可用以下公式求得:

由以上公式可知,若n取值100000,则最后一项的值已为10-8,认为可达到精度要求,编一个程序实现求p的近似值,并把结果放在out.txt文件中。

(15分)27.现有四个学生数据,每个学生数据结构包含姓名、学号和性别要求编一程序实现以学号为主键对四个学生的数据按从大到小的顺序排列。

(15分)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1