当前位置:文档之家› (精选)大学大一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).unsigned3、 下面是对宏定义的描述。

不正确的是( )A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间C). 宏替换只是字符串的简单替代D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( )A).3 B).4 C).5 D).65、 设int x;则执行printf(″%x \n″,~x^x);的结果是( )A). ffffffff B). ff__________________学院__________级___________班 姓名_______________ 学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密 封 线 内 答 题 无 效C). 0 D). 16、对于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,88、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )A).9,19 B).9,20 C).10,19 D).10,209、设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).159C).357 D).36911、执行完下列语句后,n的值是( )int n;for (n=0 ; n<100 ; n=2*n+1);A).125 B).126C).127 D).12812、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )A).–132 B).–60 C). -24 D). 013、为了连接两个字符串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、下面输出的结果为( )i nt a=13, b=64;printf(“%d \n”, !a || (b>>3) );A).13 B).64 C).1 D).016、 下列定义正确的是( )A).enum t={a,b}x; B). enum t{1,2}x; C). e num {′+′,′-′}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).818、 数据-54.78在文本文件中占用的字节个数是( )A).4 B).5 C).6 D).819、 在宏定义#define p(r) 3.14*r 中,请问宏名是( )A). p B). p(r) C). 3.14*r D). p(r) 3.14*r20、 要打开一个已存在的用于修改的非空二进制文件“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. 以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.21:__________________学院__________级___________班 姓名_______________ 学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密 封 线 内 答 题 无 效22:2. 下面程序的功能是比较字符数组a和字符数组b中的两个字符串是否相等(比较对应字符,全部相同输出0,如果不同,返回第一个不相同的字符差值,并输出)。

24:3. 就以下程序空缺的地方进行填空。

4.以下程序对一个3×3的矩阵进行行列互换。

25:26: 27:28:29:三、阅读下列程序,将输出结果写到答题纸上对应的题号处。

(本大题共4小题,每小题5分,共20分)__________________学院__________级___________班 姓名_______________ 学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密 封 线 内 答 题 无 效四、程序设计题,将源代码规范地书写在答题纸上(第34小题10分,第35小题各14分,共24分)。

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

35.计算!1!21!111n e 的值并输出(设n=20)。

四川师范大学计算机科学学院2012~2013学年度第二学期期末考试C 语言程序设计试卷 试卷A参考答案与评分标准一、单项选择题:(每小题1分,共20分)二、填空题:(每空4分,共36分)21: x >= 0 22: x < amin23: 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 <stdio.h> (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计算!1!211!111n e的值并输出(设n=20)。

(14分) #include <stdio.h> (1分)/* 递归函数5分 */long factorial(int n) (1分) {if (n == 1)return n; (2分) elsereturn 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);}其它答案可根据情况酌情给分。

(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。

可复制、编制,期待你的好评与关注)。

相关主题