程序设计语言C期末考试题A答案_第1页
程序设计语言C期末考试题A答案_第2页
程序设计语言C期末考试题A答案_第3页
程序设计语言C期末考试题A答案_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、试卷装订线北京师范大学珠海分校2011-2012学年第二学期期末考试(A卷答案)开课单位: 应用数学学院 课程名称: 程序设计语言C 任课教师: 冯霜 考试类型: 闭卷 考试时间: 120 分钟学院_ 姓名_学号_ 班级_题号一二三总分得分阅卷人试卷说明:本试卷共4页,满分100分-一、单项选择题(请将答案填入下表内,每小题2分,共60分)12345678910BBACADBBCB11121314151617181920CBDAACDBDA21222324252627282930BBDADADBDC1、结构化程序所要求的基本结构不包括( B )A、顺序结构 B、if goto结构 C、选择结构

2、 D、循环结构2、如有定义语句:int x=12,y=8,z; 在其后执行语句z=0.9+x/y,则z的值为( B )A、1.9 B、1 C、2 D、2.43、以下选项中可作为C语言合法常量的是( A )A、-80 B、-080 C、-8e1.0 D、-80.0e4、void main() int y=9; for( ; y>0 ; y-) if(y%3=0) printf("%d",-y); 程序的运行结果是( C )A、741 B、963 C、852 D、85205、以下选项中叙述错误的是( A )A、C程序函数中定义的赋有初始值的static变量,每调用一次函数

3、,赋一次初值B、C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内C、C程序函数中定义的auto变量,若无初值,则其值是不定的D、C程序函数的形参不可以说明为static型变量6、若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是 ( D ) A、实参和其对应的形参共占同一存储单元 B、形参只是形式上的存在,不占用存储单元C、同名的实参和形参占同一存储单元 D、形参和实参分别占用不同的存储单元7、以下定义语句中正确的是 ( B )A、int a=b=0; B、char A=65+1,b=b; C、float a=1,*b=&a,*c=&b; D

4、、double a=10,*b=1.1;8、已知 int t=0; while (t=1) printf(“RUN!n”); 则以下叙述正确的是 ( B )A、循环控制表达式的值为0 B、循环控制表达式的值为1 C、循环控制表达式不合法 D、以上说法都不对9、char ch=a; int k=12; printf("%c,%d,%d,",ch,ch,k); printf("k=%d n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是( C )A、变量类型与格式描述符的类型不匹配,输出无定值 B、输出项与格式描述符个数不符,输出为零

5、值或不定值 C、a,97,12, k=12 D、a,97,k=12 10、若有语句:int a=10,b=20; 执行表达式(a=a>b)&&(b=b>a)后,a和b的值分别为(B)A、0和1 B、0和20 C、10和1 D、以上答案都不正确11、以下错误的定义语句是 ( C )A、int x3=0,1,1,2,3; B、int x43=1,2,3,1,2,3,1,2,3,1,2,3; C、int x4=1,2,3,1,2,3,1,2,3,1,2,3; D、int x3=1,2,3,4; 12、以下能正确定义一维数组的选项是( B )A、int a5=0,1,2,3

6、,4,5; B、char a=0,1,2,3,4,5,0; C、char a=A,B,C; D、int a5="0123"13、若定义语句:int y=2011,*p=&y; 以下不能使变量y中的值增至2012的语句是( D)A、*p+=1; B、(*p)+; C、+(*p); D、*p+;14、 void main() char p="abc",q10= a, b, c; printf("%d%dn",strlen(p),strlen(q); 以下叙述中正确的是 ( A )A、在给数组p和q赋初值后,都以0结束,故输出的长度

7、都为3 B、由于p数组中没有0,长度不能确定,但q数组中字符串长度为3 C、由于q数组中没有0,长度不能确定,但p数组中字符串长度为3 D、由于p和q数组中都没有0,故长度都不能确定15、程序:#define M(X,Y) X*Y #define N(X,Y) (X)/(Y) void main() int a=5,b=6,c=8,k; k=N(M(a+1,b+1),c); printf("%dn",k); 运行后的输出结果是( A )A、1 B、3 C、5 D、1116、当用户要求输入的字符串中含有空格时,应使用的输入函数是( C ) A、scanf() B、getcha

8、r() C、gets() D、getc()17、若有说明:int n,*p=&n,m=5; 以下正确的程序段是 ( D )A、scanf("%d",&p); B、scanf("%d",*p); C、scanf("%d",&n); p=n; D、*p=m;18、指针变量的值是( B )A、整数 B、所指向变量的地址 C、二进制数D、NULL19、若有以下定义int a5=0,*p=a;,则对a数组元素的正确引用是( D )A、*&a5 B、a+2 C、*(p+5) D、*(a+2)20、设有结构体定义:s

9、truct student char name12; char gender; float score3; s1,s2; 若变量均已正确赋初值,则以下语句中正确的是( A )A、s1=s2; B、s2->gender=s1->gender; C、=; D、s2.score=s1.score;21、struct ty int data; char c; a=30,'x' void main() struct ty *p=&a;p->data=20; (*p).c='y'printf("%d,%c&qu

10、ot;,a.data,a.c); 程序运行后的输出结果是( B )A、30,x B、20,y C、20,x D、程序编译会出错22、程序void main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a+1; printf("%dn",*(p+2); 的输出结果是 ( B )A、3 B、4 C、1 D、2 23、有定义语句: char s10; 若要从终端给s输入5个字符,错误的输入语句是 ( D )A、gets(&s0); B、scanf("%s",s+1); C、gets(s); D、scanf("%s&qu

11、ot;,s1); 24、若执行fclose函数时,关闭文件成功,则函数的返回值是( A )A、0 B、NULL C、1 D、EOF25、若要用fopen函数向二进制文件末尾添加新的数据,文件使用方式应是( D )A、"w+" B、"a+" C、"rb+" D、"ab+"26、若有语句: char *line5; 以下叙述中正确的是( A )A、定义line是一个指针数组,每个数组元素是一个基类型为char的指针变量 B、定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C、定义line是一个字符数

12、组,语句中的*号称为间址运算符 D、定义line是一个指向字符型函数的指针变量27、以下叙述中错误的是( D ) A、在程序中凡是以"#"开始的语句行都是预处理命令行 B、预处理命令行的最后不能以分号表示结束 C、#define MAX 是合法的宏定义命令行 D、C程序对预处理命令行的处理是在程序执行的过程中进行的 28、以下叙述中错误的是 ( B )A、gets函数用于从终端读入字符串 B、getchar函数用于从磁盘文件读入字符 C、fputs函数用于把字符串输出到文件 D、fwrite函数用于以二进制形式输出数据到文件29、以下正确的函数形式是( D ) A、doub

13、le fun(int x,int y) z=x+y; return z; B、fun(x,y) int x,y; double z; z=x+y;return z;C、fun(int x,y) int z; return z; D、double fun(int x,int y) double z; z=x+y; return z;30、下面判断正确的是( C )A、char *a="bnuz"等价于 char *a;*a="bnuz" B、char str4="bnuz"等价于char str="bnuz" C、c

14、har *s="bnuz"等价于 char *s;s="bnuz" D、char c4="abc",d4="abc"等价于char c4=d4="abc" 二、阅读程序(请将程序的输出结果写在方框内,每小题5分,共30分) 1、int fun(int n) if(n=1) return 1; else return(n+fun(n-1); void main() int x=10; x=fun(x);printf("%dn",x); 552、 int fun() static

15、 int x=4; x+; return x; void main() int i,t=1; for(i=1;i<=3;i+) t*=fun(); printf("t=%dn",t);t=2103、void sub(float x, float *y, float *z) *y=*y-1.0; *z=*z+x;void main() float a=2.5,b=9.0,*p=&a;sub (b-a, p, p);printf ("a+b=%.2fn", a+b);a+b=17.004、void reverse(int a,int n) in

16、t i,t; for(i=0;i<n/2;i+) t=ai; ai=an-1-i; an-1-i=t; void main() int b10=1,2,3,4,5,6,7,8,9,10,i,s=0; reverse(b,8); for(i=6;i<10;i+) s+=bi; printf("s=%dn",s); s=225、void main() int a=0,i; for(i=1;i<5;i+) switch(i) case 0: case 3: a+=2; case 1: case 2: a+=3; break;default: a+=5; prin

17、tf("a=%dn",a);a=166、int fun(char *s) int n=0; while(*s>='0'&&*s<='9') n=10*n+*s-'0's+; return(n); /ASCII码:'0'为48、'9'为57void main() char s10="72a4b9c0d" printf("%dn",fun(s); 72三、程序设计题(共10分)已知定积分,的值由函数sum计算,函数sum首部为 float sum(int n,float a,float b),在主函数中输入积分上下限,调用sum计算,直到,输出此时的(即为该定积分的近似值),请编写完整源代码。#include <stdio.h>#include <math.h>1分float sum(int n,float a,float b)int i;float s=0; 1分for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论