信息与通信工程学院08-09-1 C语言试卷(C卷)

上传人:xins****2008 文档编号:110340686 上传时间:2022-06-18 格式:DOC 页数:14 大小:85.50KB
返回 下载 相关 举报
信息与通信工程学院08-09-1 C语言试卷(C卷)_第1页
第1页 / 共14页
信息与通信工程学院08-09-1 C语言试卷(C卷)_第2页
第2页 / 共14页
信息与通信工程学院08-09-1 C语言试卷(C卷)_第3页
第3页 / 共14页
点击查看更多>>
资源描述
天津工业大学信息学院08-09-1学期C语言程序设计期末试卷 第- 14 -页 / 共14页天津工业大学信息与通信工程学院08-09-1学期C语言程序设计期末试卷(C卷)学号 班级 姓名大题号一二三四五总分得分核分人一、单选题(每题2分,共30分。请将正确的答案标号画上) 本大题得分阅卷人签字1C语言关于标识符与关键字的概念和使用,下列叙述不正确的:A. 标识符不可以和关键字重名B. 标识符只能以英文字母或下划线开始C. 关键字可以用于定义函数的名称D. 关键字由系统确定,编程人员不可新创2. C语句的基本类型有5种,不属于这五种的是 A. 复合语句B. 控制语句 C. 输入语句D. 表达式语句3. C语言表达式(int)(2.52+2.49)+1%2的类型、值分别是:A. float型5.51B. double型5.51C. int型5D. int型64.已知a、b都是int型,则运行语句 scanf(”%d,%d”,&a,&b);时,如何键入能使a、b得到的值分别是2和3 ?A. 2 3 B. 2 3C. 23 D. 2,35. 已知x是int型且值为15,则C语言表达式0x&x=A&xy”与“c0.y”不等价二、填空题(每空3分,共30分) 本大题得分阅卷人签字1. 下一程序运行时将输出 _ 。main() int a=10; a+=a-=a*=a; printf(%d,a); getch(); 2. 下一程序运行时将输出 _ 。int f(int x) return !x; main() int x=5; printf(%d,f(x); getch(); 3. 下一程序运行时将输出 _ 。int f(int x) if(x10) printf(%2d,x); else f(x/10);printf(%2d,x%10); main() f(2345); getch(); 4. 下一程序运行时若键入字符串ABCDEFGH,则程序输出 _ _ _ 。void f(char a) char b100; int i,k; k=strlen(a); for(i=0;ik;i+=2 ) bi=bi+1=ai; bi=0; strcpy(a,b);main() char c100; gets(c); f(c); puts(c); getch(); 5. 下一程序运行时将输出 _ 。void f(int *p,int *q) *q=*p+*p; main() int a=3,b; f(&a,&b); printf(%d,b); getch(); 6. 下一函数f的功能是 _。#includeint f(unsigned long x,int n) long m; int i; for(m=1,i=1;in;i+)m*=10; /*求m的值为10的n-1次方*/ return x/m%10;7. 假设N是一个代表正整数的符号常量,问下一函数f的功能是 _。double f(double xNN) double sum=0.0; int i; for(i=0;iN;i+) sum+=xiN-i-1; return sum/N;8. 下面是一个完整的解方程程序,它所解的具体的方程是_ _;所使用的算法名称为_;程序运行一开始将输入两个数,对这两个数的要求是_,否则必须重新输入。#include stdio.h#include math.h#define JD 1e-6double f(double x) return 4*x*x*x-2*x*x+8*x-10;void p(double x)printf(x=%f,x);getch();exit(0);void main(void) double x,x1,x2,y,y1,y2; do printf(input x1 x2 ); scanf(%lf%lf,&x1,&x2); y1=f(x1); y2=f(x2); if(fabs(y1)JD) p(x1); if(fabs(y2)0.0); for(;fabs(x2-x1)JD;) x=(x1+x2)/2.0; y=f(x); if(fabs(y)JD) p(x); if(f(x1)*y0.0) x2=x; else x1=x; printf(x1=%f x2=%f x=%fn,x1,x2,x); getch();三、改错题(每题5分,共15分。)本大题得分阅卷人签字1、下面的NS算法图表示的是输出所有水仙花数的算法,可惜有错。请将这个算法图修改正确。(注意1、不得修改线条;2、最好只改动1个字符;3、所谓“水仙花数”是指这样的3位数:各位的立方恰好与这个数相等。)2. 下面的MIMA宏定义及mima函数试图在程序运行时让用户输入一个字符串,若字符串为“12345”(不含双引号)则验证通过,否则禁止使用程序,用户有三次输入密码的机会。但程序有一个语句错误,请将其修改正确。#define MIMA 12345void mima(void) char c100; int i,a=1; for(i=1;i=3;i+) printf(第%d次输入密码(共有3次机会):,i); c=gets(); /*往数组c中输入一个字符串*/ a=strcmp(c,MIMA); /*字符串比较,相同则值为0否则值不为0*/ if(a=0)break; if(a=0)return; else printf(3次输入密码皆错,按任一键退出本系统.); getch(); exit(1); /*退出运行程序*/ 3. 程序如下:#define Z(x,y) (y+x)/(y-x)main( ) int a,b; a=3;b=10; printf(%dn,Z(a+2,b); getch();该程序原意是输出(10与(3+2的和)之和)除以(10与(3+2的和)之差)所得的商即3。但目前程序输出错误结果1,因为宏定义行存在着逻辑错误。请修改宏定义行使程序符合原意。四、分析程序回答问题(5分)本大题得分阅卷人签字下面的程序是一个“图书数据库管理系统”的部分模块:#include#define N 100typedef struct /*图书结构体定义模块*/ char shuming80; /*书名*/ int chubannian; /*出版年*/ int banben; /*版本*/ float danjia; /*单价*/TUSHU;int shuru(TUSHU a) /*输入模块*/ int i; float x; TUSHU *p; for(p=a,i=0;ishuming); if(strcmp(p-shuming,-1)=0)break; printf(Shuru chuban nian :); scanf(%d,&p-chubannian); printf(Shuru banben :); scanf(%d,&p-banben); printf(Shuru danjia :); scanf(%f,&x); p-danjia=x; getchar(); return i;void save(TUSHU a,int n) /*存盘模块*/ FILE *fp; int i; fp=fopen(tushu.dat,wb); for(i=0;in;i+) fwrite(a+i,sizeof(TUSHU),1,fp); fclose(fp);main() /*主控模块*/ TUSHU aN; int n; n=shuru(a); save(a,n); getch();请阅读理解上述程序,回答下面的问题:1、本程序运行时每保存一本书的数据需要占用多少字节的内存?2、输入模块(函数shuru)中的语句“getchar();”有何意义?3、图书的数据库文件“tushu.dat”是二进制文件还是文本文件?五、编程题(每题10分,共20分)本大题得分阅卷人签字1. 请编写一个冒泡法(或其他任意方法)排序的函数。要求:函数原形为void f(int a,int n),要求能对数组a内n个元素排序。2. 请编一个完整的C程序,采用“梯形法”或“矩形法”或其他任意算法,求函数sin(x)在(0,/2)区间上的定积分。(续)(续)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!