安徽大学c语言试卷(3)

更新时间:2023-05-23 03:21:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

安徽大学c语言试卷(3)

安徽大学学期

《C语言程序设计》期末考试试卷(A卷120分钟)

年级 院系专业 姓名 学号 座位号

一. 单项选择题:(每题2分,共40分)

1.下面程序段执行后,a的值是______。

int a;

A)60 B)20 C)2.下列程序段的输出是______。 int x=023;

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

A)19 B)D)22 int a=8; a+=a-=a*a; A)-240 C)112 D)-112 。 A)B)6,5,5 C)7,6,5 D)5,6,5 ______。 x=1; } else x=2;

A)若a<b且c=d,则x=1;若a>=b且c!=d,则x=2。 B)若a<b且c=d,则x=1;若a>=b,则x=2。

C)若a<b且c=d,则x=1;若a<b且c!=d,则x=2。

D)若a<b且c=d,则x=1;若c!=d,则x=2。

6.下列程序段的执行结果是______。

安徽大学c语言试卷(3)

int i,x;

for(i=1,x=1;i<=20;i++) {

if(x>=10) break; if(x%2==1) {

x+=5; continue; } x-=3; }

printf("%d,%d\n",x,i);

A)6,4 B)7,5 C)7.下列程序的执行结果是______。 #include "stdio.h" #include "string.h" main() {

}

A)C)11 D)10

B)调用函数的实参 D)函数的形参 *(p+5)的值是______。 A)'o' B)'\0' C)'o'的地址 D)不确定的值 10.以下程序的输出结果是______。 #include "stdio.h" main() {

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

printf("%d,%d\n",*p,*(p+3)); }

安徽大学c语言试卷(3)

A)0,5 B)1,5 C)0,6 D)1,6 11.在以下定义中,标识符P______。 int (*p)[3]; A)定义不合法。 B)是一个指针数组名,每个元素是一个指向整型变量的指针。 C)是一个指针,它指向一个具有三个元素的一维数组。 D)是一个指向整型变量的指针。 12.sizeof(int)是______。

A)一个整型表达式 B)一个不合法的表达式 C)一种函数调用 D)一条语句 13.有宏定义:#define MULT1(a,b) a*b

#define MULT2(a,b) (a)*(b)

在后面的程序中有宏引用: 则y和z的值是______。 A)y=65,z=65 B)D)y=21,z=21 14.设有程序段:

A)18 C)8 D)4

file1,下面fopen函数正确的调用方式 是______ B)FILE *fp; fp=fopen("file1","r+");

D)FILE *fp; fp=fopen("file1","rb+"); 16. 设有如下定义:

struct sk {int a; float b;} data,*p;

且 p=&data; 则对data中a域的正确引用是 ( ).

A) (*p).data.a B) (*p).a C) p->data.a D) p.data.a

17.若fun( int x) { printf(“%d\n”,x);}, 则fun_______。 A)返回值为 void 类型 B)返回值无法确定 C)返回值为 int 类型 D)没有返回值

安徽大学c语言试卷(3)

18.实参和和形参之间的数据传送是_______。

A)地址传送 B)实参传给形参,再由形参传给实参 C)值传送 D)由用户指定传送方式 19.以下程序的输出结果是______。 char *s=”ABCD”, *p; for( p=s; *p ; p++) printf("%s\n", p);

A)ABCD B)A C)D D)ABCD BCD B C ABC CD C B AB

二. 1. C语言有 、 、 、 和 五种常量。

2. C程序的变量不仅要事先 ,而且还必须 后才能使用。 3. C语言在给出逻辑运算结果时,以 代表“真”,以 代

表“假”;在判断一个量是否为“真”时,以 代表“假”,以 代表“真”。 4. C语言规定只有 数组和 数组才能初始化;这种数

组不赋初值,系统会对所有数组元素自动赋以 值。 5. 对两个指针变量进行关系运算的条件是 ,其结果表

示 。

安徽大学c语言试卷(3)

6. 一个C文件是一个 或 ,它把数据看成是 ,

对文件的存取是以 为单位。

三. 程序设计题(每空2分,共40分)

1.下列程序是求Fibonacci数列:1,1,2,3,5,8 的前40个数,要

求每行输出4个数。 main() {

long int f1,f2;

main()

{ static int a[3][4]={ 1,2,3,4,5,6,7,8,9 }; printf("min value is %d\n",min_value( )); }

3.下列程序的功能是:将字符串a复制到字符串b中。 void copy_string(char *from, ⑾

) {

for(;*from; ) ;

安徽大学c语言试卷(3)

*to= ; }

main()

{ char *a="I am a boy!"; char *b="This is a test!"; ;

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

4.有一个班,3个学生,各学四门棵。下列程序的功能是:查找有

一门以上课程不及格的学生,打印出他们的全部课程的成绩。

}

安徽大学c语言试卷(3)

安徽大学20 -20 学年第 学期

《C语言程序设计》期末考试试卷(B卷120分钟)

一. 单项选择题:(每题2分,共20分) 1.执行程序: int a; printf("%d \n", (a=3*5, a*4, a+5) );后,a的值是______。 A)60

B)20

C)15

D)10

2.程序段:int x=023; printf("%d \n", --x );的输出是______。 A)19

B)18

C)23

D)3.程序段:static char printf("%d\n",strlen(s));的输出是______。 A)6 B)5 C)11 4.若fun( int x) { printf(“%d\。 A)返回值为 void 类型 C)返回值为 int 5. 有宏定义:且引用宏:z=MULT2(3+2,5+8); 则y和z的值是______ y=21,z=65 C)y=65,z=21 D)y=21,z=21 6执行后,*(p+5)的值是______。 A)B)'\0' C)'o'的地址 D)不确定的值 7. 程序段:char *s=”ABCD”, *p; for( p=s; *p ; p++) printf("%s\n", p);的输出是______。 A)ABCD

B)A

B C D

C)D

C B A

D)ABCD

ABC AB A

BCD CD D

安徽大学c语言试卷(3)

8. 若定义:int (*p)[3]; 则标识符p______。 A)定义不合法。

B)是一个指针数组名,每个元素是一个指向整型变量的指针。 C)是一个指针,它指向一个具有三个元素的一维数组。 D)是一个指向整型变量的指针。

9. 定义: struct sk {int a; float b;} data,*p; 且 p=&data; 则正确引用成员a的方式是 ______。

A) p.data.a B) (*p).a C) p->data.a 10. fopen函数的方式是______。 A)FILE *fp;

D)FILE *fp;

C)FILE *fp;

二. 填空题:1分)

7. _________和_________两部分组成。 8. 整型量可分为基本型、短整型、________和

9. ____代表“假”,以

____代表“真”。

10. C语言中的break语句只能用于______和______语句。 11. 对________和________型数组不赋初值,系统会对所有元素自

动赋以0值。

12. C语言中“文件包含”是通过____________命令完成的,而符

号常量是通过____________命令定义的。

安徽大学c语言试卷(3)

13. 对于数组x[5][5],*(x+2)+3表示_________ _,

*(x[3]+2)表示__________。

14. 若定义:struct {int y, m, d;} today, *pdata; 则为today

分配内存 __ __ 字节,为pdata分配内存 __ __ 字节。

15. C语言文件按数据的存放形式可分为________文件和

_________文件。

16. C语言文件是一个________序列,这类文件称为_______文件。 三. 程序归纳题(每题2分,共10分)

阅读下列函数,答在试卷上不得分。

while(i<size/2)

{tmp=num[i],num[i]=num[size-i-1],num[size-i-1]=tmp,i++;}}

安徽大学c语言试卷(3)

4. void fun4(char *f, char *t)

{ for(;*f!='\0';f++,t++) *t=*f; *t='\0'; }

5.void fun5(char *ps) { int a1=0, a2=0; while (*ps!= '\0')

{ if (*ps>='a'&&*ps<='z') a1++; p++; }

四. 分)

printf("%d,%d\n",*p,*(p+3)); }

安徽大学c语言试卷(3)

2. #include "stdio.h" void main() { int x=1; { int x=2;

{ int x=3; printf("%2d",x); } printf("%2d",x); } printf("%2d",x); }

3. #include <stdio.h> #include <string.h>

,"COMPUTER","CHINA"}; int i;

ps=str; sort(ps,3);

for(i=0; i<3; i++) printf("%d %s ",i+1, str[i]); }

安徽大学c语言试卷(3)

4. #include <stdio.h> int leap_year(int year){

return year%4==0 && year%100!=0 || year%400==0; } void main(){ int

month_day[]={31,28,31,30,31,30,31,31,30,31,30,31 days,i;

struct date { int year; int month; int day;

5. #include <stdio.h>

void add( int *x, int *y, int n){ while(n--) *x++ += *y++; } void main(){

int i=5; static int s1[]={2, 1, 0, 3, 2}, s2[5];

},

安徽大学c语言试卷(3)

add(s2, s1, 5);

while(i--) printf("%2d", s2[i]); }

五. 程序设计题(每题10分,共40分)

1.函数insert将一个指定的单精度数按递减规律插入数组num中,注:数组num中已有12 void insert( float num[13], float new ) { int i=11;

/***answer begin***/

2.编写函数mycmp实现库函数strcmp的功能:两个字符串的比较。 int mycmp(char *p1,char *p2) { /***answer begin***/

安徽大学c语言试卷(3)

/***answer end***/ }

3.设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。 #include <string.h> struct person { char name[20]; int count;

main()

/***answer end***/}

安徽大学c语言试卷(3)

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

printf("%5s:%d\n",leader[i].name,leader[i].count); }

4. 从键盘上输入一个字符串,将其中的小写字母转换成大写字母,然后输出到名为“test”的文本文件中保存。输入字符串以“!”结束。

#include <stdio.h> void main() {

exit(0); }

/***answer end***/ }

本文来源:https://www.bwwdw.com/article/hwh4.html

Top