您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页大学大一C语言程序设计期末考试试卷和答案

大学大一C语言程序设计期末考试试卷和答案

来源:华佗小知识
.

… …__…__…_…__…__…__…_…__…_… 号…效学) 线 ( __…无_… _… _ _… _ __…题_… _… _ _… _ _名…答… 姓… … ) 班封内( _ _… _ _ _ _… _…_线_… _ _… 级… _… __…封_ _… _ _… _… _ _…院)密学密_(__…__…__…_…__…__…__…_…__…_……….

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试

C语言程序设计试卷

试卷A

答卷说明: 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(a〈b)if(b〉c){a=c;c=b;} printf(\"%d,%d,%d\\n\",a,b,c); 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).–132 B).–60 C). —24 D)。 0 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=;

.

… …__…_…__…__…__…__…_…__…_… 号…效学) 线 ( __…无_… _… _ _… _ __…题_… _… _ _… _ _名…答… 姓… … ) 班封内( _ _… _ _ _ _… _…_线_… _ _… 级… _… __…封_ _… _ _… _… _ _…院)密密_学(__…__…__…_…__…_…___…_…__…_……….

.

printf(“%d\\n\", !a || (b〉〉3) ); A)。13 B). 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( ”hello。txt ”,\"r\" ) B)。 fp=fopen( ”hello。txt ”,”ab+” ) C)。 fp=fopen( \"hello。txt \”w” ) D)。 fp=fopen( ”hello.txt ”,”r+” ) 得分 评卷人 二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处.每小题4分,共36分)

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

#include

int main(int argc, char* argv[]) 21: { float x,amax,amin; scanf(\"%f\

amax=x; amin=x; 22: while( 21 )

{ if(x>amax) amax=x; if( 22 ) amin=x; scanf(\"%f\

} printf(\"\\namax=%f\\namin=%f\\n\ return 0; } .

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

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

23:

24:

i++; } printf(\"%d\\n\return 0;

.

… …__…_…__…__…__…__…_…__…_号…学…) 线 _(__…_…__…__…__…_…__…__…名…姓… … … 班)封__(__…__…_…__…__……_级…__…__…__…_…__…院)密_学(__…__…__…_…__…__…__…_…__…_……….

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++) { 效 str[i]=getchar(); temp=a[i][j], ( 28 ), ( 29 ); if(str[i]=='\\n') 无 break; printf(\"\\n the result array is:\\n\"); } for(i=0;i<3;i++) str[i]= ( 25 ); 题 sptr=str; { while(*sptr) printf(\"\\n\"); for(j=0;j<3;j++) putchar( 26 ); 答return 0; printf(\"%5d\ } } return 0; 内 } 线25: 26: 27:

28:

密29:

得分 评卷人 三、阅读下列程序,将输出结果写到答题纸上对应的题号处.(本大题共4小题,每小题5分,共20分) . .

30题: #include int fun(int x) { int y=0; static int z=3; z++;++y; return(x+y+z); } void main( ) { int i,x=2; for(i=0;i<2;i++) printf(\"%5d\}

31题: #include int main(void) { char str[100]=\"I am a pig.\"; char *p= &str[7]; int i; for (i=0; str[i] != '\\0'; i++, p++ ) { if( *p>='a' && *p<'z' ) (*p)++; else if( *p == 'z' ) *p = 'a'; } puts( str ); return 0; } 32题: #include int a1=300,a2=400; void sub1(int x,int y) { a1=x; x=y; y=a1; } void main( ) { int a3=100,a4=200; sub1(a3,a4); sub1(a1,a2); printf(\"%d,%d,%d,%d\\n\}

得分 评卷人 33题: #include int (int m,int n) { if(m==n) return m; else if(m>n) return (m-n,n); else return (m,n-m); } void main( ) { printf(\"Gcd=%d\\n\}

四、程序设计题,将源代码规范地书写在答题纸上(第34小题10分,第35小题各14分,共24分)。

.

.

34.设计函数实现将一个字符串中小写字母转化为大写字母.

35.计算e1

111的值并输出(设n=20). 1!2!n!四川师范大学计算机科学学院

2012~2013学年度第二学期期末考试

C语言程序设计试卷 试卷A

参与评分标准

一、单项选择题:(每小题1分,共20分)

1 B 11 C 2 B 12 B 3 D 13 A 4 D 14 D 5 A 15 C 6 B 16 D 7 C 17 B 8 A 18 C 9 A 19 A 10 C 20 B

二、填空题:(每空4分,共36分)

21: x >= 0 22: x < amin

23: int i=0 24: (a[i] == b[i]) && a[i] != ’\\0’ 25: ‘\\0’ 26: *sptr++

27: j 〈 i 28: a[i][j] = a[j][i] 29: a[j][i] = temp

三、阅读程序题:(每小题5分,共20分)

30: 7 9 31: I am a qjh。 32:100,400,100,200 33:Gcd=12

四、程序设计题:(第34小题10分,第35小题各14分,共24分)

.

.

34。设计函数实现将一个字符串中小写字母转化为大写字母。(10分)

#include (1分) #include 〈ctype.h〉 (1分)

/* 转换函数4分,其中:循环正确1分,判断、转换正确各1分,其余1分 */ void Convert(char * str) { while (*str != ’\\0') { if(islower(*str )) *str = toupper(*str); str++; } }

/* 主函数4分,其中:变量定义初始化正确1分,函数调用正确2分,输出正确1分*/ void main( ) { char str[] = ”123123asadAsadMNer”; Convert(str); printf(\"%s\\n”,str); }

其它答案可根据情况酌情给分。

35计算e1111。(14分) 的值并输出(设n=20)

1!21!n!#include 〈stdio。h> (1分)

/* 递归函数5分 */

long factorial(int n) (1分) { if (n == 1) return n; (2分) else return n * factorial(n-1); (2分) }

/* 主函数8分,其中:变量定义正确2分,循环正确得2分,函数调用格式正确2分,输出正确2分*/ void main( ) { double e = 1.0; for (int i=1; i<=20; i++) { e += 1/(double)factorial(i); }

.

.

printf(\"%lf\\n”,e); }

其它答案可根据情况酌情给分.

.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务