




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一1, 表达式 sizeof(“C2009”) 的值是_2, 在C语言中,标识符只能由字母、数字和下划线字符组成,并且第一个字符不能是_ 字符。3, 定义 int b=7; float a=5.2, c=6.9; 则表达式 b*(int)(a+c)/2 的值为_4,设x、y均为整型变量,完成以下语句,以实现不借助任何其它变量将x、y的值进行交换:x = x + y; y = x - _ ; x = x - _ ;5,设有如下定义,并且结构体数组student中的元素都已有值,若要将这些元素写到 fp 指向的文件中,请将函数调用语句 fwrite( student, sizeof(struct st), 50, _ ); 补充完整。struct st char name8; int num; float s3; student50; 6,写出下列程序的输出结果_ #include long fac( int n ) if ( n=1 ) return 1; return n*fac(n-1);main() printf( 5!=%ldn, fac(5) );7,假定建立了以下链表结构,如图所示。指针p与q指向2个不同的结点,t为与data同类型的数据变量,则交换2结点数据的语句为:t=p-data; _;和_;1)以下程序按每行5个数的格式输出1至n范围内能被7或17 整除的整数,并求出其和。如输入:50则输出:7 14 17 21 2834 35 42 49Sum=247源程序:#include void main()int i, n, ct=0, sum=0;scanf( %d, &n );for ( i=1; i=n; i+ )if ( _(1)_ )printf( %dt, i );_(2)_;ct+;if ( _(3)_ )printf( n );printf( nSum=%dn, sum );_2)以下程序输入10个整数到a数组,找到并输出其中最大的整数及其下标。如输入:80 290 150 520 330 -160 -99 0 200 9则输出:a3=520源程序:#include #define N 10int get_max_index( int a, int n )int i, k=0;for ( i=1; in; i+ )if ( _(1)_ )k = i;return _(2)_;void main()int i, k, aN;for ( i=0; iN; i+ )scanf( %d, &ai );k = _(3)_;printf( a%d=%dn, k, ak );_3)以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,从键盘上输入平时成绩在总成绩中所占比重,计算每个学生的总成绩(四舍五入为整数)后输出到屏幕上。文件的最后一行为0表示学生数据结束。设文件student.txt的内容为101 Zhao9558103 Qian7581105 Sun9991107 Li 80670运行时键盘输入:0.1则屏幕输出:101 Zhao 95 58 62103 Qian 75 81 80105 Sun 99 91 92107 Li 80 67 68源程序:#include void calc( FILE *fp, float x )int num, score1, score2;float score3;char name20;while ( !feof(fp) ) /* 文件还有未读数据时 */num = 0;fscanf( fp, %d%s%d%d, &num, name, &score1, &score2 );if ( num 0 ) /* 学生数据有效时 */score3 = score1 * x + score2 * (1-x);/* 计算总成绩 */printf( %3d %-7s %3d %3d %3dn, num, name, score1, score2, _(1)_ ); /* 总成绩四舍五入为整数 */void main()FILE *fp;float x;fp = fopen( student.txt, r );if ( _(2)_ )/* 如果文件打开失败 */printf( File Open Error!n );return;scanf( %f, &x );calc( _(3)_ );/* 调用calc函数 */fclose( _(4)_ );/* 关闭文件 */ 四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)1. 程序调试题1(B_3_1.C)调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括B_3_1.c文件和B_3_1.exe文件)保存到目录C:KS中。功能说明:程序计算并输出1! + 2! + + n!(1至n阶乘的累加和),其中函数fact(n)计算n!的值,返回类型为double。如输入:10则输出:1!+2!+10! = 4037913原程序(见C:KSB_3_1.C):#include double fact( int n ) int i; double result = 1; for ( i=1; in; i+ ) result = result * i; return result;void main() int i, n; double sum = 0; scanf( %d, &n ); for ( i=1 ; i=n; i+ ) sum += fact(int i); printf( 1!+2!+.+%d! = %.0lfn, n, sum );2. 程序调试题2(B_3_2.C)调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括B_3_2.c文件和B_3_2.exe文件)保存到目录C:KS中。功能说明:程序输入任意一行字符串(设字符数不大于20),提取该字符串中的数字字符并组成一个整数,输出该整数及其两倍的值。如输入:abc12e3fgh4i则输出:1234 2468原程序(见C:KSB_3_2.C):#include void main() int i, n=0; char str80; gets(str80); for ( i=0; stri!=0; i+ ) if ( stri=0 & stri=9 ) n = n*10 + stri;printf(%d %dn, n, 2*n);五、编程题(本大题2小题,每题18分,共36分)1编程题1(B_5_1.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_5_1.C文件和B_5_1.exe文件)保存到目录C:KS中。功能说明:输入5个整数,输出其中正整数的累加和与正整数的平均值,输入输出格式如以下示例。如输入:10 0 20 -5 31则输出:Sum=61, Average=20.32编程题2(B_5_2.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_5_2.C文件和B_5_2.exe文件)保存到目录C:KS中。功能说明:输入正整数m和n(设100mn999),输出m到n之间满足下列条件的三位数:它的个位数的立方加十位数的平方再加上百位数等于该数的本身(例如13513*35*5*5)。如输入:135 555则输出:135 175 518 二1, 表达式strlen (“C2009”) 的值是_2, 设int a=3,b=4,c=5; 则a*a+b*b=c*c的结果为_3, 设a=2,b=3,x=3.5,y=2.5,表达式(float)(a+b)/2+(int)x%2/4 的值为_4, 设a,b,c为整型变量,写出表达式:当a比b、c都大时结果为真_5, 与下列语句等价的条件表达式语句是_switch ( x!=0 ) case 0: y=1; break; case 1: y=-1;6,设有下述描述学生信息的结构定义及变量说明,则使学生变量s 的出生年份为1990的赋值语句是_struct date int year; /* 年 */ int month; /* 月 */ int day; /* 日 */;struct student int no; /* 学号 */ char *name; /* 姓名 */ char sex; /* 性别 */ struct date birth;/* 出生年月日 */ s,7,假定建立了下图所示的链表结构,指针p、q分别指向如图所示的结点,则将q所指结点从链表中删除的C语句是_ 1),下面程序实现的功能是打印n以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如: 153是一个水仙花数, 153=1*1*1+5*5*5+3*3*3.如输入:400则输出:1 153 370 371#include void main()int n, digit, k, m, s;scanf( %d, &n );for ( k=1; _(1)_; k+ ) s = 0; m = k; while ( m != 0 ) digit = _(2)_; s = s + digit*digit*digit; m = m/10; if ( _(3)_ ) printf( %d , s ); 2)以下函数 int sum(int x, int num)计算数组x前num个元素之和。在主函数中,输入10个任意整数和下标index1、index2的值(设1=index1=index2=9),调用sum()函数计算index1元素到第index2元素的和,并输出结果。如输入:1 3 2 5 7 9 6 4 8 102 4则输出:Sum=14例示说明:下标从2至4的元素为2、5、7,其累加为14源程序:#include int sum( int x, int num ) int i, s=0; for ( i=0; _(1)_; i+ )s = _(2)_;return s;void main() int i, index1, index2, result;int x10;for ( i=0; i10; i+ )scanf( %d, &xi );scanf( %d%d, &index1, &index2 );result = sum( x+index1, _(3)_ );printf( Sum=%dn, result );3)以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩(学生已按学号从小到大排序),从键盘上输入一个新学生的信息,按学号顺序将数据插入到学生表中,并生成新的文本文件“studentC.txt”。文件的最后一行为0表示学生数据结束。设文件student.txt的内容为101 Zhao9558103 Qian7581105 Sun9991107 Li 80670运行时键盘输入:104 Chen 80 90则生成新文件studentC.txt的内容为:101 Zhao 95 58103 Qian 75 81104 Chen 80 90105 Sun 99 91107 Li 80 670源程序:#include void main( )FILE *fp1, *fp2;int fnum, fscore1, fscore2;char fname20;int num, score1, score2;char name20;int flag;fp1 = fopen( student.txt, _(1)_ );fp2 = fopen( studentC.txt, w );if ( fp1=NULL | fp2=NULL )printf( File Open Error!n );return;scanf( %d%s%d%d, &num, name, &score1, &score2 );_(2)_;while ( 1 )fnum = 0;fscanf( fp1, %d%s%d%d, &fnum, fname, &fscore1, &fscore2 );if ( fnum = 0 )break;if ( flag=1 & num=fnum )flag = 0;fprintf( fp2, %3d %-7s %3d %3dn, num, name, score1, score2 );fprintf( fp2, %3d %-7s %3d %3dn, fnum, fname, fscore1, fscore2 );if ( _(3)_ )fprintf( fp2, %3d %-7s %3d %3dn, num, name, score1, score2 );fprintf( fp2, _(4)_ );fclose( fp1 );fclose( fp2 );四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)1. 程序调试题1(C_3_1.C)调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括C_3_1.c文件和C_3_1.exe文件)保存到目录C:KS中。功能说明:程序输入一个正整数并因式分解,输出分解等式。如输入:60则输出:60=1*2*2*3*5原程序(见C:KSC_3_1.C):#include void main() int n, i;scanf( %d, &n );printf( %d=1, n );for ( i = 2; i = n; ) if ( n % i = 0 ) printf( *%d, i );n / i;elsei+;2. 程序调试题2(C_3_2.C)调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括C_3_2.c文件和C_3_2.exe文件)保存到目录C:KS中。功能说明:以下程序中函数str_to_upper将字符串中的小写字母转换为大写字母,主函数调用此函数及输入输出数据,用户通过键盘输入计算所需的数据。如输入:Hello world.则输出:HELLO WORLD.原程序(见C:KSC_3_2.C):#include void str_to_upper( char *s )while ( *s = 0 )if ( *s=a | *s=z )*s = *s - A + a;s+;void main()char str80;gets( str );str_to_upper( str );puts( str );五、编程题(本大题2小题,每题18分,共36分)1编程题1(C_5_1.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_5_1.C文件和C_5_1.exe文件)保存到目录C:KS中。功能说明:键盘输入5个整数,输出其中同时为3和5倍数的正整数。如输入:18 30 5 -15 75则输出:30 752编程题2(C_5_2.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_5_2.C文件和C_5_2.exe文件)保存到目录C:KS中。功能说明:编写程序计算并输出:1 + 12 + 123 + 1234 + 的前n(设0n10)项的和,n从键盘输入。例如输入:3,则输出:136又如输入:6,则输出:137171 三1,在C语言中,char类型的数据所占存储空间的字节数为_,能够测试数据所占存储空间字节数的运算符是_2,设有定义char x; 写出判定x是否为大写字母的表达式_3变量value已被定义为float型,对其小数部分进行四舍五入的C表达式为_4设有以下程序段,则执行完该程序段后,变量 i 的值是_int i;char s=Hello!, *p=s;for( i=0; *(p+i)!=0; i+ );_5阅读以下程序并写出运行结果_ #include main() int k,n=0;for ( k=1; k=1000; k+ )if ( k%3=0 & k%5=0 )printf( %d , k );n+;if ( n=3 ) break;_6一个C程序总是从_函数开始执行的_7假定建立了如下图所示的链表结构,指针p、q分别指向相邻的2个结点,则将r所指结点插入p、q所指结点之间的C语句是_;和_;1)以下程序输入n和n个大于1的正整数,输出其中素数。如输入:5 19 93 11 37 15则输出:19 11 37例示说明:先输入n为5,再输入5个正整数,输出5个整数中的素数#include void main()int n, a, i, j, ct;scanf( %d, &n );for ( i=0; _(1)_; i+ )_(2)_;scanf( %d, &a );for( j=2; ja; j+ )if ( _(3)_ )ct+;if ( ct=0 )printf( %d , a );printf( n );_2)以下程序输入一个10进制整数,转换为16进制,计算16进制的各个位数,并从高位到低位依次输出。如输入:687则输出:2 A F例示说明:10进制687等于16进制2AF,输出时2、A、F中间包含空格源程序:#include void main()int a10, i, n;scanf( %d, &n );for ( i=0; n0; i+ )ai = _(1)_;n /= 16;for ( i-; _(2)_; _(3)_ )printf( %X , ai );_3)以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。文件的最后一行为0表示学生数据结束。设文件student.txt的内容为101 Zhao9558103 Qian7581105 Sun9991107 Li 80670运行时键盘输入:80则生成新文件studentD.txt的内容为:103 Qian 75 81105 Sun 99 91四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)1. 程序调试题1(D_3_1.C)调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_1.c文件和D_3_1.exe文件)保存到目录C:KS中。功能说明:以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。如输入:-3 5 4则输出:sumx=18例示说明:-3为首项,5为公差,4为项数,前4项之和为18原程序(见C:KSD_3_1.C):#include int sumx( int a0, d, n )int i, k, s=0;k = a0;for ( i=0; in; i+ )s += k;k += d;return s;void main()int a0, d, n;scanf( %d%d%d, &a0, &d, &n );printf( sumx=%dn, sumx(a0,d,n) );2. 程序调试题2(D_3_2.C)调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_2.c文件和D_3_2.exe文件)保存到目录C:KS中。功能说明:以下函数length返回字符串中字母A到字母Z所包含字符的长度。主程序输入一行字符串,调用length函数输出该字符串中大写字母A到Z的子串长度。如输入:Z2009-AShanghaiZ则输出:Length=8例示说明:从A到Z的子串为Shanghai,其长度为8原程序(见C:KSD_3_2.C):#include int length( char *p )char *q, *r;for ( q=p; *q!=0 | *q!=A; q+ );for ( r=q; *r!=0 & *r!=Z; r+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大型展览工程承包及特种材料集成应用合同
- 2025年度节能环保型PVC给水管材订购及售后保障合同
- 2025年工厂升级改造临时设施安装及拆除作业合同
- 2025年文化旅游景区线上宣传合作协议
- 2025年新型城镇化建设劳务派遣员工劳动合同规范
- 2025医疗健康数据安全与隐私保护服务承揽合同
- 江西公务员面试题及答案
- 建筑系列培训课件图片
- 银行晨会培训课件
- 涉税业务知识培训课件
- 《七大营养素》课件
- 国际道路旅客运输经营许可申请表
- (2023版)电信智家工程师认证必备考试题库大全(含解析)-下(判断题汇总)
- 超高层带伸臂结构巨型环桁架施工技术总结附图
- 2乳的验收与预处理解析
- 三峡大学级本科电气工程及其自动化二本培养方案
- 架桥机安装与拆除安全技术交底
- GB/T 19839-2005工业燃油燃气燃烧器通用技术条件
- 伤口造口新进展课件
- (完整版)人工智能介绍课件
- 预防校园欺凌-共创和谐校园-模拟法庭剧本
评论
0/150
提交评论