C语言试题及答案.doc_第1页
C语言试题及答案.doc_第2页
C语言试题及答案.doc_第3页
C语言试题及答案.doc_第4页
C语言试题及答案.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

一. 程序分析,写出运行结果(30分)1试题程序#include typedef structint x;int *y;A;main( )A *p;int dt = 10, 20, 30, 40;A a = 40, &dt0, 50, &dt1, 60, &dt2, 70, &dt3;p = a;printf(%d, , +p-x );printf(%d, , (+p)-x );printf(%dn, +(*p-y);/*答案:41, 50, 21*/2试题程序#include void fun( )int i;char b10;FILE *fp;fp = fopen( file.dat, r );for( i = 0; i 9; i+ )bi = fgetc( fp );printf(%c, bi - a + A );fclose( fp );printf( n );main( )char a10 = abcdefghi;int i;FILE *fp;fp = fopen( file.dat, w );for( i = 0; i 9; i+ )fputc( ai, fp );fclose( fp );fun( );/*答案:ABCDEFGHI*/3试题程序#include void mmx( int t )int *M, *m, *p, *q;q = t + 10;M = m = t;for( p = t + 1; p *M )M = p;else if( *p *m )m = p;*p = t0;t0 = *m;*m = *p;*p = t9;t9 = *M;*M = *p;main( )int i;int a10 = 23, 12, 45, 56, 1, 78, 43, 58, 90, 13 ;mmx( a );for( i = 0; i 10; i+ )printf(%d, , ai );/*答案:1, 12, 45, 56, 23, 78, 43, 58, 13, 90, *找最大/最小,最小的和第一个位置对换,最大的和最后一个对换。*/ 4试题程序#include #define SIZE30float aSIZE;void fun1( float s )int i, k;for( k = 2, i = 0; i SIZE; i+ )si = k;k += 2;void fun2( float b, float w )float sum = 0.0;int k, i;for( k = 0, i = 0; i SIZE; i+ )sum += bi;if( ( i + 1 ) % 5 = 0 )wk = sum / 5;sum = 0.0;k+;main( )float sum;int i;float wSIZE;fun1( a );fun2( a, w );for( i = 0; i SIZE / 5; i+ )printf(%.1f, , wi );/* *答案:6.0, 16.0, 26.0, 36.0, 46.0*/5试题程序#include main( )int i, j, f10;f0 = f1 = 1;for( i = 2; i 10; i+ )fi = fi-2 + fi-1;for( i = 0; i 10; i+ )if( i%4 = 0 )printf(n%3d , fi);for( j = 0; j fi; j+ )printf(# );/* * 答案: * 1 # * 5 # * 34 # * */6试题程序#include main( )int x = 18;int y, i, a8, j, u, v;y = x;i = 0;dou = y/2;ai = y % 2;i+;y = u;while( y = 1 );for( j = i-1; j = 0; j- )printf(%d, aj );printf(Yes);/* *答案:10010Yes * */7试题程序#include int i = 0;int workover( int i )i = ( i % i ) * ( (i*i)/(2*i) + 4);printf(i = %dn, i );return i;int reset( int i )i = i = 2 ? 5:0;return i;main( )int i = 5;reset( i / 2 );printf(i=%dn, i );reset( i = i /2 );printf(i=%dn, i );reset( i/2 );printf(i=%dn, i );workover( i );printf(i=%dn, i );/* *答案: *i = 5 *i = 2 *i = 2 *i = 0 *i = 2 */8试题程序说明下列程序的功能, 请写出程序的输出#include #include int fun( char *p )int num = 0, k;for( ; *p; p+ )k = *p - 0;num = num * 10 + k;return num;main( )char s6 = -2345;int n;n = ( *s = - ) ? -fun( s + 1 ):fun( s );printf(%d, n );/* *答案: -23459试题程序#include main( )char s = ABCCDA;int k;char c;for( k = 1; c = sk; k+ )switch( c )case A:putchar(%);continue;case B:+k;break;default:putchar( * );case C:putchar( & );continue;putchar(#);/*答案:#&*&% */二. 程序填空(30分)1. 以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义)int fun(int xN)int i,k=0;for(i=0;iN;i+)if(xi return xk;答案:if(xi xk)k = i;2. 以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设M,. N已定义)int fun(int aNM)int i,j,row=0,col=0;for(i=0;iN;i+)for(j=0;jmain()int a10,*p,s;for(p=a;p-a10;p+)scanf(”d”,p);for(p=a,s=a;p-a*s)s=p;5. 以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。includestdiohmain() char a51,2,3,4,5,i;fp=fopen(”f txt”,”w”);for(i=0;i5;i+)fputc(ai,fp);fclose(fp);答案:FILE *fp;6. 以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。#include “stdio.h” main() int x=256;printf(%d-%d-%dn, );答案:x%10,x/10%10,x/1007. 以下程序用以删除字符串所有的空格,请填空。试题程序: #include “stdio.h” main() char s100=Our teacher teach C language!;int i,j;for(i=j=0;si!=0;i+) sj= 0printf(“%sn”,s);答案:if(si!= ) sj=si;j+;8. 函数fun功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a的十位和个位数依次放在c的个位和百位上,b的十位和个位数依次放在c的十位和千位上。例如,当a45, b=12调用该函数后,c2514。请填空。试题程序:#includevoid fun(int a,int b,long *c)void main()int a,b;long c;printf(printf a,b:);scanf(%d%d,&a,&b); printf(a=%d b=%dn,a,b); fun(a,b,&c); printf(The result is:%dnn,c);答案:#includevoid fun(int a,int b,long *c)int a1,a2,b1,b2;a1=a%10;a2=a/10;b1=b%10;b2=b/10;*c=a2+a1*100+b2*10+b1*1000;9. 函数fun的功能是:通过某种方式实现两个变量值的交换。例如变量a中的值原为10, b中的值原为20程序运行后a中的值为20, b中的值为10。请填空。试题程序:#includeInt fun(int *x, int y) void main()int a,b; printf(Enter a, b:); scanf(%d%d,&a,&b);printf(a%d b%dnn,a,b); b=fun(&a,b); printf(a%d b%dnn,a,b);答案:int fun(int *x, int y) int t;t=*x;*x=y;y=t;return t;三. 编写程序(40分)1. (7分)编程实现:输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:(1)能同时被3,5,7整除;(2)能被其中两数(要指出哪两个)整除;(3)能被其中一个数(要指出哪一个)整除;(4)不能被3,5,7任何一个整除。2. (8分)每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买苹果总个数达到不超过100这个最大值。编程求平均每天花多少钱?3. (12分)定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。4. (13分)从键盘输入一个字符串,然后按照下面要求得到一个新字符串。新串是在原串中,每相邻两个字符之间插入一个空格,如原串为abcdef,则新串为a b c d e f。然后,将新串逆序(不允许使用辅助数组),最后将得到的字符串输出。要求在函数insert中完成新串的产生;在函数inverse中完成新串的逆序;并在主函数中完成所有相应的输入和输出。1. #include void main()int x;scanf(%d,&x);if(x%3=0)&(x%5=0)&(x%7=0)printf(%d能同时被3,5,7整除n,x);else if (x%3=0)&(x%5=0)printf(%d能被3和5整除n,x);else if (x%3=0)&(x%7=0)printf(%d能被3和7整除n,x);else if (x%7=0)&(x%5=0)printf(%d能被7和5整除n,x);else if (x%3=0)printf(%d能被3整除n,x);else if (x%5=0)printf(%d能被5整除n,x);else if (x%7=0)printf(%d能被7整除n,x);elseprintf(%d不能被3,5,7任何一个整除n,x);2. #includevoid main()int day=0,buy=2;float sum=0.0,ave;dosum=sum+0.8*buy;day+;buy=buy*2;while(sum=100);ave=sum/day;printf(%f,ave);3. #include#define SIZE 30void main()float bSIZE/5,sum;int aSIZE,i,j,k;for(k=2,i=0;iSIZE;i+)ai=k;k=k+2;sum=0.0;for(k=0,i=0;iSIZE;i+)sum=sum+ai;j=i+1;if(j%5=0)bk=sum/5;sum=0;k+;printf(The result is:n);for(i=0;iSIZE/5;i+)printf(%f ,bi);printf(n);4. #include#includevoid insert(char *p)int i;

温馨提示

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

评论

0/150

提交评论