大学大一C语言程序设计期末考试试卷及答案 下载本文

内容发布更新时间 : 2024/12/23 6:17:48星期一 下面是文章的全部内容请认真阅读。

C语言程序设计试卷

答卷说明:

1、本试卷共6页,答题纸3页,4个大题,35个小题,满分100分,120分钟完卷。 2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。 3、本试卷适用于2011级1、2、3班。

题号 分数

得分 评卷人 一 二 三 四 总分 总分人

一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分) 1、 在C语言中,下列标识符中合法的是( )

A). -int B). in1_3 C). A_B!D D). const

2、 不属于C语言基本数据类型的是( )

A). int B). union C). char D). unsigned

3、 下面是对宏定义的描述。不正确的是( )

A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间

C). 宏替换只是字符串的简单替代

D). 宏替换时先检查类型,类型一致时才可以替换

4、 C语言中,″\\\\xfds″在内存中占用的字节数是( )

A).3 B).4 C).5 D).6

5、 设int x;则执行printf(″%x\\n″,~x^x);的结果是( )

A). ffffffff B). ff C). 0 D). 1

6、 对于while语句,错误的说法是( )

A).用条件控制循环体的执行次数 B).循环体至少要执行一次

C).循环体有可能一次也不执行 D).循环体中可以包含若干条语句

7、 执行下列语句后输出的结果是( )

int a=8,b=7,c=6;

if(ac){a=c;c=b;} printf(\

A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,8

8、 设int a=9,b=20;则printf(″%d,%d\\n″,a--,--b);的输出结果是( )

A).9,19 B).9,20 C).10,19 D).10,20

9、 设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\\0′};那么( )

A).x数组的长度等于y数组的长度 B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度 D).x数组与y数组的存储区域相同 10、 设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )

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

printf(″%d″,x[i][2-i]); A).147 B).159 C).357 D).369 11、 执行完下列语句后,n的值是( )

int n;

for (n=0 ; n<100 ; n=2*n+1);

A).125 B).126 C).127 D).128 12、 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )

A).–132 B).–60 C). -24 D). 0

计算机科学学院 C语言程序设计 试卷A 第1页(共6页)

????????????(密)????????????(封)????????????(线)???????????? __________________学院__________级___________班 姓名_______________ 学号_______________ 13、 为了连接两个字符串s1与s2,应当使用( )

A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )

14、 设int a,*p;则语句p=&a;中的运算符“&”的含义是( )

A).位与运算 B).逻辑与运算 C).取指针内容 D).取变量地址

15、 下面输出的结果为( )

int a=13, b=64;

printf(“%d\\n”, !a || (b>>3) ); A).13 B).64 C).1 D).0

16、 下列定义正确的是( )

A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;

17、 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;

则printf(″%d\\n″,sizeof(aa));的输出是( ) A).32 B).36 C).12 D).8

18、 数据-54.78在文本文件中占用的字节个数是( )

A).4 B).5 C).6 D).8

19、 在宏定义#define p(r) 3.14*r中,请问宏名是( )

A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的用于修改的非空二进制文件“hello.txt”,正确语句是( )

A). fp=fopen( \ B). fp=fopen( \C). fp=fopen( \ D). fp=fopen( \ 得分 评卷人 密 封 线 内 答 题 无 效 二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处。每小题4分,共36分)

1. 以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.

#include int main(int argc, char* argv[]) { float x,amax,amin; scanf(\amax=x; amin=x; while( 21 ) { if(x>amax) amax=x; if( 22 ) amin=x; scanf(\ }

21:

22:

}

printf(\%f\\namin=%f\\n\

return 0;

2. 下面程序的功能是比较字符数组a和字符数组b中的两个字符串是否相等(比较对应字符,全部相同输出0,如果不同,返回第一个不

相同的字符差值,并输出)。

#include int main(void) { char a[100]=\char b[100]=\ 23 ; /* 完成对应字符的比较,并判定一个字符串是否结束了*/ while( 24 ) {

23:

24:

i++; } printf(\return 0; 计算机科学学院 C语言程序设计 试卷A 第2页(共6页)

?? __?_?__?__?__?__?_?__?_号??学) 线 _(_?__?__?__?__?_?__?__?名?姓? ? ? 班)封__(__?__?_?__?__?级?_?__?__?__?_?__?院)密_学(__?__?__?_?__?__?__?_?__?_???3. 就以下程序空缺的地方进行填空。 4.以下程序对一个3×3的矩阵进行行列互换。

#include #include #include int main(int argc, char* argv[]) int main(int argc, char* argv[]) { { int i,j,temp; char str[81],*sptr; int a[3][3]={1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<80;i++) for( i=0 ; i<3; i++) { for( j=0; ( 27 )i; j++) temp=a[i][j], str[i]=getchar(); ( 28 ), ( 29 ); if(str[i]=='\\n') break; } printf(\ str[i]= ( 25 ); for(i=0;i<3;i++) { sptr=str; while(*sptr) printf(\ putchar( 26 ); for(j=0;j<3;j++) return 0; printf(\ } } return 0; } 25: 26: 27: 28: 29: 效 得分 评卷人 无 三、阅读下列程序,将输出结果写到答题纸上对应的题号处。(本大题共4小题,每小题5分,共20分)

题 30题: 31题: #include 答 #include int fun(int x) int main(void) { { char str[100]=\ int y=0; 内 char *p= &str[7]; static int z=3; int i; z++;++y; for (i=0; str[i] != '\\0'; i++, p++ ) return(x+y+z); { if( *p>='a' && *p<'z' ) 线} (*p)++; void main( ) else if( *p == 'z' ) { *p = 'a'; 封 int i,x=2; } for(i=0;i<2;i++) puts( str ); 32 题: printf(\ 33return 0; 题 密#include } } : #include int a1=300,a2=400; int gcd(int m,int n) void sub1(int x,int y) { { if(m==n) a1=x; return m; x=y; else if(m>n) y=a1; return gcd(m-n,n); 得分 评卷人 } else void main( ) return gcd(m,n-m); { } int a3=100,a4=200; void main( ) sub1(a3,a4); 计算机科学学院{ C语言程序设计 试卷A 第3页(共6页) sub1(a1,a2); printf(\ printf(\} }