已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辽宁工程技术大学2005-2006年春季学期试卷 2006.6课程名: 程序设计基础(C) 学分: 5 学号: 姓名: 学院/教师: 题号一二三四卷面上机总分题分21368127723100得分考生须知:1. 试卷和答题纸上的“学号、姓名、学院、教师”都要填上;2. 所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上;3. 不遵守上述要求者考试成绩将为零分。4. 本卷考试的得分为卷面分,电脑上机考试(另行安排)的得分为上机分,考试成绩为卷面分与上机分之和。一、基础题(21分,第1小题3分,其它每小题2分)1定义int x=3,y=3,z=3; 写出z=(y=10*(x+=3)=60)+28;执行后各变量的值。2定义float x=1453.1672; 分别计算表达式(int)(x+0.5)与(int)(x*100+0.5)/(float)100的值。3定义int a=3,b=5,c=0; 分别计算表达式(a+=2)&(c=0)与!(a2)|(b-=5)|(c=0)的真假。4. 定义int a=12,b=6,c=2; 分别计算表达式 (a & b) | c与(a b) c的值(结果使用十进制形式)。5写出判断表达式:a小于b且b小于c。6写出判断表达式:n不是3的倍数或者n是7的倍数。7使用条件运算符(?:)写出表达式:将a和b的最大值赋值给x。8定义int a10; 写出语句片段:输入a数组中的10个整数。9定义char words1020; 使用printf写出语句:输出words中第一维下标i对应的字符串。10定义int *p;使用malloc函数写出语句:申请10个整数(int)的内存空间,并将首指针赋值给p。二、阅读程序(36分,每小题4分)仔细阅读下列程序,将各程序的运行结果写在答卷纸上。(1)程序#include main()int m,n,i,ct=0;scanf(%d%d, &m, &n );for ( i=m; i=n; i+=3 )printf( %2dt, i );ct+;if ( ct%5=0 )printf( n );/*输入 2 35 */输出:?(2)程序#include main()int n,i,j;scanf(%d, &n );for ( i=0; in; i+ )for ( j=0; ji; j+ )printf( );for ( j=0; j2*(n-i)-1; j+ )printf( * );printf( n );/*输入 4 */输出:?(3)程序#include main()int a10,i;for ( i=0; i10; i+ )scanf(%d, &ai );for ( i=0; i10; i+ )if ( ai%2=0 )printf( %dt, ai );printf( n );/*输入:11 22 77 66 33 44 88 100 99 0 */输出:?(4)程序#include #include main()char s81;int ct26=0, i, k;gets( s );for ( i=0; si!=0; i+ )if ( si=A & si=Z )k = si-A;ctk +;for ( i=0; i0 )printf( %c=%dt, A+i, cti );/*输入:abc=cBA, ABG=GBa, BGH. */输出:?(5)程序#include #include main()char s81, a81;int n;gets( s );n = strlen( s );printf( Length=%dn, n );strcpy( a, s );strcat( a, s );puts( a );an+1=0;puts( a );strcpy( s, a+1 );puts( s );/*输入:aBcDeF */输出:?(6)程序#include int buffa16,buffn=0;void push(int data)buffabuffn+ = data;int pop(void)return buffa-buffn;main()int n,i;scanf( %d, &n );for ( i=0; i8; i+ )push( n%2 );n /= 2;for ( i=0; i8; i+ )printf( %d, pop() );printf( n );/*输入:20 */输出:?(7)程序#include long jchen( int k, int n )if ( k=n )return n;elsereturn k*jchen(k+1,n);main()int n; long v;for ( n=1; n=4; n+ )v = jchen(1,n);printf( %d! = %ldn, n, v );输出:?(8)程序#include int *find( int *a, int n, int data ) /* 数组为a,个数为n,查找的数为data */ int *p, *q, *r; p = a; /* p指向待查找区域的首部 */ q = a+n; /* q指向区域的尾部的下一个位置 */ while ( p q ) /* 待查找区不为空时 */ r = p + (q-p)/2; /* 待查找区的中点位置 */ printf(=%d=n,*r); /* 输出值 */ if ( *r = data ) return r; /* 如果找到,返回该指针 */ else if ( *r data ) p = r + 1; /* 比中点大,在后半区 */ else q = r; /* 比中点小,在前半区 */ return NULL; /* 待查区为空,没找到 */main() int x=11,22,33,44,55,66,77,88,99,100, d, *p; scanf( %d, &d ); /* 输入要查找的数 */ p = find( x, 10, d ); /* 调用查找,结果赋值给p */ if ( p != NULL ) /* 判断是否找到数 */ printf( Found at %dn, p-x ); /* 找到,计算下标 */ else printf( Not Found.n );/* 没找到 */* 输入:55 */输出:?(9)程序#include struct workerchar sex;float pay;main()FILE *ff;struct worker per10;float max, min, sum1, sum2, x;int ct1,ct2,i;ff = fopen( worker.txt, r );if ( ff=NULL ) return;for ( i=0; i5; i+ )fscanf( ff, %f %c, &x, &peri.sex );peri.pay = x;fclose( ff );max = min = per0.pay;sum1 = sum2 = ct1 = ct2 = 0;for ( i=0; i5; i+ )if ( maxperi.pay )min = peri.pay;switch ( peri.sex )case m:case M:sum1 += peri.pay;ct1+;break;case f:case F:sum2 += peri.pay;ct2+;printf( Max=%4.2fn, max );printf( Min=%4.2fn, min );printf( Male: count=%d Aver=%4.2fn, ct1, sum1/ct1 );printf( Female: count=%d Aver=%4.2fn, ct2, sum2/ct2 );/*假设文件操作总是成功的,worker.txt包含以下内容:200.11 m300.22 f500.22 f400.11 m100.99 ?*/输出:?三、改错程序(8分,每错误点2分)下列程序各有两个错误(两个错误分别是在不同的行上,以注解行形式标注),按原来程序的要求,纠正错误,并将错误所在行号以及错误行完整的正确内容写在答卷纸的对应栏内。(1)以下程序输入整数n和n个整数,判断它们是否有重复,如果没有重复输出Yes,否则输出No。#include #define N 100main()int aN, n, i, j, isyes=1;/*1*/scanf( d%, &n );/*2*/for ( i=0; in; i+ )/*3*/scanf( %d, &ai );/*4*/for ( i=0; in; i+ )/*5*/for ( j=0; jn; j+ )/*6*/if ( ai=aj & i!=j )/*7*/isyes-;if ( isyes=0 ) /* 本行及以下不做修改 */printf( Non );elseprintf( Yesn );/* 若输入 10 1 2 3 4 5 6 7 8 9 10 则输出Yes */* 若输入 10 1 2 3 4 5 6 7 8 9 2 则输出No */(2)以下函数countword用于统计字符串所包含的单词数,单词之间使用一个或多个空格分开,主函数main用于测试countword函数。#include #include int countword( char s )/* 计算字符串s的单词数,单词的分隔符为空格 */int ctw, cta, i; /*ctw为单词计数*/* 1*/ctw=cta=0; /*cta为当前单词的字符计数*/* 2*/for ( i=0; si!=0; i+ )/* 3*/* 4*/if ( strcmp(si, )!=0 )/* 5*/ /* 当前字符不是空格时 */* 6*/if ( cta = 0 )/* 7*/ctw+;/* 8*/cta+;/* 9*/*10*/else/*11*/cta = 0;/*12*/*13*/return ctw;main()printf( count=%dn,countword(Hello 123x 34%$.) ); /* 输出单词数为 3 */四、程序填空(12分,每填空2分)阅读下列问题描述和相应的C程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。(1)以下程序输入年和月,输出该月的日历。#include int getdays( int y, int m )/* 返回y年m月的天数 */int days = 0,31,0,31,30,31,30,31,31,30,31,30,31;if ( y%400=0 | y%4=0 & y%100!=0 ) /* 闰年判断 */ (1) ;elsedays2 = 28;return (2) ;int getweek( int y, int m )/* 返回y年m月1日的星期数,星期天为0,星期一为1 */int w, i;/*以下公式计算y年1月1日的星期数*/w = (y+(y-1)/4-(y-1)/100+(y-1)/400)%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江西省瑞昌市高二生物下册期末考试测试卷及答案(夺冠)
- 2026年吉林省公主岭市高二生物下册期末考试考试卷及答案(新)
- 2026年贵州省兴义市高二生物下册期末考试模拟卷(轻巧夺冠)附答案
- 2026年辽宁省新民市高二生物下册期末考试检测卷附参考答案(研优卷)
- 2026年山东省荣成市高二生物下册期末考试模拟卷及答案(有一套)
- 2025年江苏省兴化市高二生物下册期末考试模拟卷完整版附答案
- 2026年辽宁省新民市高二生物下册期末考试检测卷含答案【预热题】
- 2025年浙江省江山市高二生物下册期末考试模拟卷及参考答案(培优A卷)
- 2026年幼儿园一等奖社会公开课
- 2026年幼儿园懂礼貌的好孩子宣讲
- 岭南师范学院《数学建模》2025-2026学年第二学期期末试卷(A卷)
- 2026年医院编制考试公共基础知识综合冲刺真题题库(含答案)
- 2026年去2026年重庆中考试卷及答案
- 2025年安徽省初二学业水平地生会考真题试卷(+答案)
- 江苏省兴化市顾庄学区2026届中考数学五模试卷含解析
- 2026年中国临床肿瘤学会结直肠癌诊疗指南版
- 2025-2030中国民宿行业经营现状分析与未来投资价值评估研究报告
- 2025年湖南省技术产权交易所有限责任公司专业岗位招聘4人笔试参考题库附带答案详解
- AI赋能下北师大版小学数学四年级上册《确定位置》教学设计反思
- 11080《工程数学》国家开放大学期末考试题库
- 2025新疆机场(集团)有限责任公司喀什管理分公司第一季度招笔试备考试题附答案
评论
0/150
提交评论