




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2005级信息学院C语言程序设计考试试题一、 判断下列语句或程序的对错。(“”表示错,“”表示对)(10分)1 float s=0,s1.1=0; ( )2 #define M=100 ( ) int aM;3 char *p=”c test” ”; ( )4 if(a=b)0)t=a; ( )5 char str120=” china”,str220; ( )str2=str1;6 int i,*p=&i; ( )7 float a100,*p; ( )p=a+1; 8 printf(“%dn”,(30,50,80); ( )9 int x,y; ( )y=20,x=y+a;10 int (*p)20,a20; ( )p=(int (*)20)a;二、 计算下列表达式的值(10分)设unsigned int a=7,b=17,c=5,d=3;float x=2.5,y=4.7; (1)x+a%3*(int)(x+y)%2/4 ( 2.5 ) (2)!(a=b)|(bc) ( 0 ) (3) (ab)+(cb)?+a:+b ( 3 ) (5) a/2.0*b-c/3+d ( 61.5 )三、程序改错,用标记指出错误,并在旁边将错误的地方进行修正(10分)(1) 求某班30个学生英语成绩的平局分#include float calculate (float *p,int n); /*添加函数声明*/main ()float a30,aver;int m;for(m=0;m30;m+) scanf(“%d”,a+m);aver=calculate(a,30);printf(“aver=%fn”,aver);float calculate (float *p,int n) /*添加函数的数据类型*/ char x; int temp; /*int temp=0 需要设置初始值为0; for(x=0;x=n;x+) /*for(x=0;xn;x+)*/ temp+=px; return temp/n;(2)找N个字符串中最大字符串#include #define N 5char *process (char p80,int n);添加函数声明main() char stringN80,*p; char i; for(i=0;iN;i+) scanf(“%s”,&stringi); /* scanf(“%s”,stringi); 除掉取地址符*/ p=process(string,N); printf(Max string :=%sn”,p);char *process (char *p80,int n) /*去掉*号,或改为char p*/ int i; char *pmax; for(i=1;in;i+) if(pi0*/ pmax=pi; return pmax;四 程序填空(10分) (1) 利用公式 sin x设x=0.4时sin x的值# includemain() float x,sn,un; int i,j; x=0.4; un=_; sn=_; i=1; while(un=1e-5) un=_;sn=_;i+; printf(“x=%f,sinx=%fn”,x,sn); (2)以下itoa(int a,char *)是一个将整数转换为对应的数字串的函数,reverse(char*)是一个将字符串翻转函数,被itoa调用,main()函数是用来测试itoa函数的. (书中例题:p197)#include#define LENGTH 6void reverse(char *);void itoa(int,char *);void main()int n;char sLENGTH;printf(“input a integer:n”);scanf(“%d”,&n);itoa(n,s);printf(“string:%s”,s);void itoa(int n,char *p) int i,sign; if((sign=n)0); if(sign0)pi+= -; pi=0;reverse(p);void reverse(char *) int i,j,k; for(i=0,j=strlen(p)-1;ij;i+,j=j-1) k=pi; pi=pj; pj=k; 五, 写出结果(1)#include void main() int i,j,p,s; s=0; for(i=1;i=4;i+) p=1; for(j=1;j=i;j+) p=p*j; s=s+p; printf(s=%dn,s); S = 33(2) #include void mian() int i,j,a55; for(i=0;i5;i+) aii=1; ai0=1; for(i=2;i5;i+) for(j=1;j=i-1;j+) aij=ai-1j-1+ai-1j; for(i=0;i5;i+) for(j=0;j=i;j+) printf(%4d,aij); printf(n); (打印杨辉三角)11 11 2 11 3 3 11 4 6 4 1(3) #include int d=1; void func(); void main(); func(); func(); func(); void func() static int a; register int b=0; int c=0; printf(a=%4dtb=%4dtc=%4dtd=%4dn,a+,b+,c+,d+); a=0 b=0 c=0 d=1a=1 b=0 c=0 d=2a=2 b=0 c=0 d=3(4) #include struct Student char No10; char name20; char sex; int age; ; void main() struct Student stu3=10101,LI Lin,M,18,10102,Zhang fan,M,19,10104,Wang min,M,20; struct Student *p; int m; for(p=stu+1,m=0;mNo+3,p-name,p-age); 02: zhang fan : 19 02: zhang fan : 19(5)#include #include void main() char *name=“capital”,”index”,”large”,”small”; int a,b,n=4; char *temp; for(a=0;an-1;a+) for(b=a+1;bn;b+) if(strcmp(namea,nameb)0) temp=namea; namea=nameb; nameb=temp; for(a=2;an;a+) printf(“%sn”,namea+a);dexital六 编写程序 (35分)1)(9分)售货价格随购货数量而异,买10个以上(含10,下同)为90折,买20个以上为85折,买30个以上为80折,买50个以上为6折,设商品的价格为65元,要求输入购买商品的个数后,打印出总货款。#include #define PRICE 65main()int number;double payment;printf(please enter the number:);scanf(%d,&number);if(number=10)payment = PRICE*number*1.0;else if(number=20)payment = PRICE*number*0.90;else if(number=30)payment = PRICE*number*0.85;else if(number=50)payment = PRICE*number*0.80;elsepayment = PRICE*number*0.60;printf(购买产品数:%d 总货款:%lfn,number,payment);2)(9分)编写一个函数,求x=a1/2,其中求平方根的迭代公式为 xn+1=1/2(xn+a/xn),要求前后两次求出的差的绝对值小于10-6,编写的函数完成求平方根运算。主函数完成整数a的输入,调用所编函数,输出所求平方根;注意:不得使用全局变量,注意程序结构#include #include float Root(float a)float x1=1.0,x2;while(1)x2=1.0/2*(x1+a/x1);if(fabs(x2-x1)1e-6)break;x1=x2;return x2; main() float a,x; printf(input a:); scanf(%f,&a); x = Root(a); printf(sqrt(%f)=%fnn,a,x);3)(9分)缩写一个函数,统计字符串中子串出现的次数,如在字符串“10101000101”中出现子串“101”的个数为2;主函数完成字符串和子串的输入,调用所编函数得到子串出现的次数,并输出出现的次数。注意:不得使用全局变量,注意程序结构#include #include int mystrstr(char *s1,char *s2)char *last;char *current;int number=0;int len;len = strlen(s2);last = s1;if(*s2!=0)last = current = strstr(s1,s2);while(current!=NULL)last = current;current = strstr(last+len,s2);number+;return number;main()char s180,s280;int num;printf(please input s1:);gets(s1);printf(please input s2:);gets(s2);num = mystrstr(s1,s2);printf(%s have %s: %d timesn,s1,s2,num);4)输入10个字符串,然后排序输出。排序的原则由键盘输入的数来决定,为0,将输入的字符串按整数值大小从小到大排序,否则按字典顺序排序。要求:输入、输出、排序分别用函数实现,主函数只是调用这些函数。不得使用全局变量,注意程序结构。(参见书中p198201)这里的答案与书中有点不同,希望大家能够掌握多种方法#include #include #define NUM 10void Input(char p80,int n);void Sort(char p80,int n);void Output(char p80,int n);void main()char strNUM80;Input(str,NUM);Sort(str,NUM);Output(str,NUM);void Input(char p80,int n)int i;for(i=0;in;i+)gets(pi);void Sort(char p80,int n)int i,j;char temp80;for(i=0;in-1;i+)for(j=i+1;j0)strcpy(temp,pi);strcpy(pi,pj);strcpy(pj,temp);void Output(char p80,int n)int i;for(i=0;in;i+)puts(pi);2006级信息学院c语言程序设计考试试题系: 班级:姓名: 学号: 成绩:一、 判断下列语句或程序的对错。(“x”表示错,“”表示对)(10分)1 int x=0, y=z=0; ( x )2 #include ( )3 printf(“%dn”, “c language”); ( x )4 int x100;float *p = x; ( x )5 char *str;str = “string”; ( x )6 int data = 1,2,3,4; ( )7 char x = A;float y = x ; ( x )8 int xyz_1 = 2; ( )9 int x = xef; ( )10 float *p, a23; p= *a; ( )二、 计算下列表达式的值(10分)设unsigned int a = 10, b = 17, c = 5, d = 3;float f;(1) f = b%c ( 2.0 )(2) !(a+b)+ c - 1|b+c/3 ( 1 )(3) (a&b) + (c1|d) ( 0x0b )或11(4) a -= b /= a+b ( 10 )(5) a = 2, b = a*b+ ( 34 )三、 程序改错(10分)(1) 从键盘输入三个整数, 然后按从大到小的顺序进行输出#include main()int a, b , c;scanf(“%d,%d,%d”, a, b, c ); &a,&b,&cif (ab) swap( &a , &b);ff(bc) swap(&b, &c);printf(“%fn%fn%fn”, a, b, c); %dn%dn%dnvoid swap( int *p1, int *p2)int *temp; int temp;temp = p1; *p1p1 = p2 ; *p1 = *p2;p2 = temp; *p2(2) 找出N个字符串最大字符串和最小字符串#include #include char *process ( char p 80, int n , char *pmin); 添加函数原型声明#define N 5main()char stringN80,*pmax,*pmin;char I;for(i=0;iN;i+) scanf(“%s”,&stringi); stringipmax = process(string, N, pmin);printf(“Max string : = %s , Min string : = %sn”, pmax,pmin);char *process ( char *p 80, int n , char *pmin) char p 80int i;char *pmax = pmin = p0;for( i =1;in;i+) if(pi0 字符串比较需要用strcmp pmax = p i; strcpy(pmax,pi); 字符串赋值需要用strcpy;for(i=1;ipmin) strcmp(pi,pmin)0 pmin = pi; strcpy(pmin,pi);return pmax;四、 程序填空(10分)(1) 利用公式 /4 = 1 1/3 + 1/5 1/7 + .计算的值,直到最后一项的绝对值小于10-6为止#include main()int s;float n,t,pi;n=1,pi=0,s=1,t=1 while( fabs(t)1e-6 ) pi= pi + t;n = n + 2 ;s = (-1)*s ;t = s/n ;pi = 4*pi ;printf(“pi = % 10.6fn”,pi);(2) 编写一个函数,删去给定字符串中的数字字符#include char *pro_str(char *s); void main(void)char str80;printf(“input string:n”);gets(str);puts( pro_str(s) ); char *pro_str(char *s)char *temp = s ; while( *s!=0 ) if(*s =0& *s =9) strcpy(s,s+1) ; else s+;return temp ; 五、写输出结果(1)#include void fun(int *, int );void main()int a = 5,6,7,8,i;fun(a, 4);for(i=1;i4;i+)printf(%dn, ai);void fun(int *b, int n)int i;for(i=0;in;i+)bi = bi*bi;return ;364964 (2)#include void main( )int valueA23 = 1, 0, 5, 0, 3, 4;int valueB32 = -4, 9, 6, -1, 1, 2;int valueC22 = 0, 0, 0, 0;int i, j, k;for(i=0; i2; i+) for(j=0; j2; j+) for(k=0; i3; k+) valueCij += ValueAik*valueBkj; for(i=0; i2; i+) printf(“n”); for(j=0; j2; j+) printf(“%5d”, valueCij; (矩阵的乘积)1 1922 5(3)#include int n;void func( );void main( )printf(main: n = %dn,n);func( );func( );printf(main: n=%dn,n);void func( )static int n = 0;register int x = 0;int y = 0;printf(func : n = %d, x = %d, y = %dn,n+,+x,y+);main: n = 0func: n=0,x=1,y=0func: n=1,x=1,y=0main:n=0(4)#includestruct Keychar *keyword;int keyno;void main( )struct Key kd3 = are,123,my,456, you, 789;struct Key *p;int a;char chr;p = kd;a = +p-keyno;printf(a = %dn,a);a = (+p)-keyno;printf(a = %dn,a);p = kd;chr = *p-keyword;printf(char = %cn,chr);a = 124a = 456chr = a(5)#include #include void main() char *name = capital, index, large, small; char *pp;int a; pp = name;for(a=0; a4; a+,pp+)printf(%sn,*pp+a);capitalndexrgell六、编写程序(35分)1)给出一百分制成绩,要求输出成绩等级A,B, C, D, E, 90分以上为A, 80-89分为B,70-79分为C,, 60-69分为D, 60分以下为E。(9分)#include main()int score;printf(please enter the score:);scanf(%d,&score);if(score=90)printf(the score:%d-%cn,score,A);else if(score=80)printf(the score:%d-%cn,score,B);else if(score=70)printf(the score:%d-%cn,score,C);else if(score=60)printf(the score:%d-%cn,score,D);else printf(the score:%d-%cn,score,E);2)编写一个函数,求两个整数的平方和和平方差;主函数完成两个整数的输入,然后调用所编写的函数和输出所求的平方和和平方差;(9分)#include float Func(float a,float b,float *c);main()float a,b;float add2;float min2;printf(please enter the a b:);scanf(%f%f,&a,&b);add2 = Func(a,b,&min2);printf(a2+b2:%f,a2-b2:%fn,add2,min2);float Func(float a,float b,float *c)float add2;add2 = a*a+b*b;*c = a*a-b*b;return add2;3)编写一个函数,删除给定字符串中的指定的某一字符串,如在字符串“yamsderdsfam”中删除指定的字符串”am”后为”ysderdsf”;主函数完成字符串和需要删除的字符串的输入,调用所编写的函数得到删除后的字符串。(9分)注意:不得使用全局变量,注意程序结构;#include #include char *del_str(char *s1,char *s2);void main()char string80;char s280;printf(input string:);gets(string);printf(input s2:);gets(s2);puts(del_str(string,s2);char *del_str(char *s1,char *s2)char *temp=s1;char *current=s1;while(*current!=0)current=strstr(current,s2);strcpy(current,current+strlen(s2);return temp;4)一个班有N个学生,修5门功课,从键盘输入他们的姓名、学号、性别和成绩。(1)按每个学生的平均成绩从低到高的顺序打印全班的成绩单;(2)求第三门课男生的平均分;(3)找出平均成绩在50分以下或全部功课成绩在60分以下的女生。(8分)要求:输入、输出、计算、排序和查找分别用函数实现,主函数只是调用这些函数。不得使用全局变量,注意程序结构;2007级信息学院c语言程序设计考试试题系: 班级:姓名: 学号: 成绩:五、 判断下列语句或程序的对错。(“x”表示错,“”表示对)(10分)1 int x=y=z=0; ( )2 #define N 50 ; ( )3 printf(“%dn”, (40,50,60); ( )4 int x100,*pp = x+; ( )6 char str20;str20 = 0; ( )6 char str = 1,2,3,4; ( )7 float x = 1.45e+310 ; ( )8 int xyz.1 = 2; ( )9 int x = (013 = =A; ( )10 float *p, a23; ( ) P = *a +2;六、 计算下列表达式的值(10分)设unsigned int a = 12, b = 19, c = 5, d = 3;float f ;(1) f = b/c ( )(2) (!(a+b)+c-1)|(b+c/3) ( )(3) (a&b) ( c|d) ( )(4) a -= b %= a+b ( ) (5) +b , a=10 , a+b ( ) 七、 程序改错(10分)八、 求两个浮点数的和及差#include main ()float a,b;float add_reasult, sub_result;scanf (“%f,%f”,a,b);add_result=calculate(a,b,&sub_result);printf( “a+b=%d,a-b=%dn”,add_result,sub_result);calculate (float a,float b,float *sub)float *temp;*sub = a - b;*temp = a + b;return *temp;(2) 删除指定字符串中的数字字符,然后显示#include Void main()char string80scanf(“%s”,&string);puts(DelDigChar(string);DelDigChar(char *str)int *temp = str;while(*str) if(*str = 0&*str=9) Strcpy(str+1,str); else str+;return temp九、 程序填空(10分)按如图所示格式打印杨辉三角形的前10行11 12 13 3 11 4 6 4 1main() int m,n,a1010;for(m=0;m10;m+)am0=1;_;for(_;m10;m+) for(_;_;n+) amn=_;for(m=0;m10;m+) for(n=0;_;n+) printf(“%6d”,amn); _;(3) 用字符指针数组处理多个字符串排序问题#include #include Void sortstr(char *v,int n);void main()char *proname= “pascal”,”basic”,”cobol”,”prolog”,”lisp”;int i;sortstr(_);/排序for(i=0;i5;i+) /输出排序后的字符串 printf(“%sn”,pronamei);void sortstr(char *v,int n) int i,j; _; for(i=0;in-1;i+)for(_;j=0) temp = vi; vi = vj; _; 五、写输出结果(1)#include float fun(int *,int);void main()int a4 = 63,65,75,61,83,87,90,85,90,95,92,93;float temp;temp = fun(a2,4);printf(“%dn”,temp);float fun(int *b,int n) int i; float aver = 0; for(i=0;in;i+)aver += bi; return aver/n;(2)#include void main( )int i,j,max;int row=0, column=0;int a33 = 1,2,3,2,-3,4,9,4,7;max = a00;for(i=0;i3;i+) for(j=0;jmax) max=aij; row = i+1; column = j+1; printf(“max = %d, row = %d, column = %dn”, max, row, column)(3)#include int n = 10;void func( );void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 想要抱抱的小猪教学课件
- 河南省淮阳县第一高级中学2026届化学高一上期中检测试题含解析
- 悯农课件锄禾
- 2026届赣湘粤三省六校化学高二第一学期期中考试试题含解析
- 上海市二中学2026届高三化学第一学期期末教学质量检测模拟试题含解析
- 夜饭营销策划方案
- 乡镇农业工作个人工作方案
- 吉他乐理初级试题及答案
- 安阳政治试题及答案
- 粮食收购面试题及答案
- 2025上海市八年级升九年级数学暑假提升讲义:相似三角形压轴题(六大题型)原卷版
- 2025年工业互联网工程技术人员考核试题题库及答案
- 供货组织方案范文
- 农行OCRM系统讲解
- 2025年《药品经营和使用质量监督管理办法》培训试题及答案
- 2024年云南省县乡教师选调考试《教育学》真题汇编带解析(原创题)
- 工贸安全员考试题库及答案大全
- 羊肚菌栽培及其管理课件
- 教师身体健康管理指南
- 2025高空作业考试试题及答案(完整版)
- 出租车车辆GPS定位承包合同范本
评论
0/150
提交评论