ImageVerifierCode 换一换
格式:DOC , 页数:354 ,大小:1.55MB ,
资源ID:2563689      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2563689.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二级C题库 宏为世纪教育滴.doc)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

二级C题库 宏为世纪教育滴.doc

1、宏为世纪教育提供 网址: 宏为世纪教育 */ 二级 C 语言上机试题汇编 第 01 套: 给定程序中,函数 fun 的功能是:将形参 n 所指 变量中,各位上为偶数的数去 除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回 所指变量。 例如,输入一个数:27638496,新的数:为 739。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(unsigned long *n) unsigned

2、long x=0, i; int t; i=1; while(*n) /*found*/ t=*n % _1_; /*found*/ if(t%2!= _2_) x=x+t*i; i=i*10; *n =*n /10; /*found*/ *n=_3_; main() unsigned long n=-1; while(n99999999|n double fun ( int n ) /* 宏为世纪教育 */ double result = 1.0 ; /*found*/ if n = = 0 return 1.0 ; while( n 1 /* len 为串长 ,t 为正负标识 */ lo

3、ng x=0; len=strlen(p); if(p0=-) t=-1; len-; p+; else t=1; /* 以下完成数字字符串转换为一个数字 */ return x*t; main() /* 主函数 */ char s6; long n; printf(“Enter a string:n“) ; gets(s); n = fun(s); printf(“%ldn“,n); /* 宏为世纪教育 */ NONO ( ); NONO ( ) /* 本函数用于打开文件, 输入数据,调用函数,输出数据,关闭文件。*/ FILE *fp, *wf ; int i ; char s20 ;

4、long n ; fp = fopen(“c:testin.dat“,“r“) ; wf = fopen(“c:testout.dat“,“w“) ; for(i = 0 ; i #include long fun ( char *p) /* 以下代码仅供参考 */ int i, len, t; /* len 为串长 ,t 为正负标识 */ long x=0; len=strlen(p); if(p0=-) t=-1; len-; p+; else t=1; /* 以下完成数字字符串转换为一个数字 */ while(*p) x = x*10-48+(*p+); return x*t; main

5、() /* 主函数 */ char s6; long n; printf(“Enter a string:n“) ; gets(s); n = fun(s); printf(“%ldn“,n); NONO ( ); NONO ( ) /* 本函数用于打开文件, 输入数据,调用函数,输出数据,关闭文件。*/ /* 宏为世纪教育 */ FILE *fp, *wf ; int i ; char s20 ; long n ; fp = fopen(“c:testin.dat“,“r“) ; wf = fopen(“c:testout.dat“,“w“) ; for(i = 0 ; i void fu

6、n(char *s, int a, double f) /*found*/ _1_ fp;char ch; 阿fp = fopen(“file1.txt“, “w“); fprintf(fp, “%s %d %fn“, s, a, f); fclose(fp); fp = fopen(“file1.txt“, “r“); printf(“nThe result :nn“); ch = fgetc(fp); /*found*/ while (!feof(_2_) /*found*/ putchar(_3_); ch = fgetc(fp); putchar(n); fclose(fp); mai

7、n() char a10=“Hello!“; int b=12345; double c= 98.76; fun(a,b,c); /* 宏为世纪教育 */ 解题思路: 本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。 第一处:定义文本文件类型变量,所以应填:FILE *。 第二处:判断文件是否结束,所以应填:fp。 第三处:显示读出的字符,所以应填:ch。 * 给定程序 MODI1.C 中函数 fun 的功能是: 依次取出字符串中所有数字字符, 形 成新的字符串, 并取代原字符串。 请改正函数 fun 中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动 ma

8、in 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include void fun(char *s) int i,j; for(i=0,j=0; si!=0; i+) if(si=0 for(i=0; i #define N 5 typedef struct student long sno; char name10; float score3; STU; void fun(char *filename, STU n) FILE *fp; /*found*/ fp = fopen(_1_, “rb+“); /*found*/ fseek(_2_, -1L*sizeof(S

9、TU), SEEK_END); /*found*/ fwrite( fclose(fp); main() STU tN= 10001,“MaChao“, 91, 92, 77, 10002,“CaoKai“, 75, 60, 88, 10003,“LiSi“, 85, 70, 78, 10004,“FangFang“, 90, 82, 87, 10005,“ZhangSan“, 95, 80, 88; STU n=10006,“ZhaoSi“, 55, 70, 68, ssN; int i,j; FILE *fp; fp = fopen(“student.dat“, “wb“); fwrite

10、(t, sizeof(STU), N, fp); fclose(fp); fp = fopen(“student.dat“, “rb“); fread(ss, sizeof(STU), N, fp); fclose(fp); printf(“nThe original data :nn“); for (j=0; j #include typedef struct aa int data; struct aa *next; NODE; NODE *Creatlink(int n, int m) NODE *h=NULL, *p, *s; int i; /*found*/ p=(NODE )mal

11、loc(sizeof(NODE); h=p; p-next=NULL; for(i=1; idata=rand()%m; s-next=p-next; p-next=s; p=p-next; /*found*/ return p; outlink(NODE *h) NODE *p; p=h-next; printf(“nnTHE LIST :nn HEAD “); while(p) printf(“-%d “,p-data); p=p-next; printf(“n“); main() NODE *head; head=Creatlink(8,22); /* 宏为世纪教育 */ outlin

12、k(head); 解题思路: 第一处: 指向刚分配的 结构指针,所以 应改为:p=(NODE *)malloc(sizeof(NODE); 第二处: 在动态分配内存的下一行 语句是,使用临时结构指针变量 h保存 p 指针的初始位置, 最后返回不能使用 p,是因为 p 的位置已经发生了变化,所以应改为返回 h。 * 请编写函数 fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返 回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干 个空格隔开, 一行的开始没有空格。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其它函数中的任何内容

13、 , 仅在函数 fun 的花括号中填入 你编写的若干语句。 给定源程序: #include #include #define N 80 int fun( char *s) main() char lineN; int num=0; printf(“Enter a string :n“); gets(line); num=fun( line ); printf(“The number of word is : %dnn“,num); NONO(); 解题思路: 本题是统计字符串中的单词数。 1. 利用 while 循环语句和指针变量,当字符为空格时,则单词数 k 加1。 2. 循环结束返回 k。

14、 参考答案: int fun( char *s) int k = 1 ; while(*s) if(*s = ) k+ ; s+ ; return k ; 第 04 套: 程序通过定义学生结构体变量,存储了学生的学号、姓名和 3 门课的成绩。所 有学生数据均以二进制方式输出到文件中。函数 fun 的功能是从形参 filename 所指 的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的 学生数据输出到 filename 所指的文件中,覆盖原来的文件内容。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的 BLAN

15、K1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #define N 5 typedef struct student long sno; /* 宏为世纪教育 */ char name10; float score3; STU; void fun(char *filename) FILE *fp; int i, j; STU sN, t; /*found*/ fp = fopen(filename, _1_); fread(s, sizeof(STU), N, fp); fclose(fp); for (i=0; i。 第三处:把已排序的结构数据,重新写

16、入文件,所以应填:fwrite。 * 给定程序 MODI1.C 中函数 fun 的功能是: 在字符串的最前端加入 n个*号, 形成 新串, 并且覆盖原串。 注意: 字符串的长度最长允许为 79。 请改正函数 fun 中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include #include void fun ( char s, int n ) char a80 , *p; int i; /*found*/ s=p; for(i=0; i #define N 50 #define M 11 void

17、fun( int *a, int *b) double rnd() static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return(double)r/m); main() int ageN, i, dM; for(i=0; i 10) bM - 1+ ; else bj+ ; double rnd() static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return(double)r/m); 第 05 套: 给定程序中,函数 fun 的功能是将参数给定的字符串、整数、浮点数写到文本 文件中,再用字符串方式从此文本文件中逐个读

18、入,并调用库函数atoi 和 atof 将 字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include void fun(char *s, int a, double f) /*found*/ _1_ fp; char str100, str1100, str2100; int a1; double f1; fp = fopen(“file1.txt“, “w“); /* 宏为

19、世纪教育 */ fprintf(fp, “%s %d %fn“, s, a, f); /*found*/ _2_ ; fp = fopen(“file1.txt“, “r“); /*found*/ fscanf(_3_,“%s%s%s“, str, str1, str2); fclose(fp); a1 = atoi(str1); f1 = atof(str2); printf(“nThe result :nn%s %d %fn“, str, a1, f1); main() char a10=“Hello!“; int b=12345; double c= 98.76; fun(a,b,c)

20、; 解题思路: 本题是考察先把给定的数据写入到文本文件中,再从该文件读出并转换成相应的整数、浮点数显示在屏幕上。 第一处:定义文本文件类型变量,所以应填:FILE *。 第二处:关闭刚写入的文件,所以应填:fclose(fp)。 第三处:从文件中读出数据,所以应填:fp。 * 给定程序 MODI1.C 中函数 fun 的功能是: 对 N 名学生的学习成绩,按从高到低的 顺序找出前 m(m10)名学生来, 并将这些学生数据存放在一个动态分配的连续存 储区中, 此存储区的首地址作为函数值返回。 请改正函数 fun 中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动 main 函数, 不得

21、增行或删行, 也不得更改程序的结构! 给定源程序: #include #include #include #define N 10 typedef struct ss char num10; int s; STU; STU *fun(STU a, int m) STU bN, *t; int i,j,k; /*found*/ t=(STU *)calloc(sizeof(STU),m) for(i=0; i bj.s) j=i; /*found*/ /* 宏为世纪教育 */ t(k)=b(j); bj.s=0; return t; outresult(STU a, FILE *pf) int

22、 i; for(i=0; i10 ) printf(“nGive the number of the students who have better score: “); scanf(“%d“, pOrder=fun(a,m); printf(“* THE RESULT *n“); printf(“The top :n“); for(i=0; i #define N 80 int fun(int a, int n) /* 宏为世纪教育 */ main() int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10,i,n=20; printf(“T

23、he original data :n“); for(i=0; i double f1(double x) return x*x; double f2(double x, double y) return x*y; /*found*/ _1_ fun(int i, double x, double y) if (i=1) /*found*/ return _2_(x); else /*found*/ return _3_(x, y); main() double x1=5, x2=3, r; r = fun(1, x1, x2); /* 宏为世纪教育 */ r += fun(2, x1, x

24、2); printf(“nx1=%f, x2=%f, x1*x1+x1*x2=%fnn“,x1, x2, r); 解题思路: 本题是根据给定的公式来计算函数的值。 第一处:程序中使用双精度 double 类型进行计算,所以函数的返回值类型也为 double,所以应填:double 。 第二处:当 i 等于 1 时,则返回 f1 函数的值,所以应填:f1 。 第三处:如果 i 不等于 1,则返回 f2 函数的值,所以应填:f2 。 * 给定程序 MODI1.C 中函数 fun 的功能是: 比较两个字符串,将长的那个字符串 的首地址作为函数值返回。 请改正函数 fun 中指定部位的错误, 使它能得

25、出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include /*found*/ char fun(char *s, char *t) int sl=0,tl=0; char *ss, *tt; ss=s; tt=t; while(*ss) sl+; /*found*/ (*ss)+; while(*tt) tl+; /*found*/ (*tt)+; if(tlsl) return t; else return s; main() char a80,b80,*p,*q; int i; printf(“nEnter a strin

26、g : “); gets(a); printf(“nEnter a string again : “); gets(b); printf(“nThe longer is :nn“%s“n“,fun(a,b); 解题思路: 第一处: 试题要求返回字符串的首地址,所以应改为:char *fun(char *s,char *t) 第二处: 取字符串指针 ss 的下一个位置,所以应改为:ss+;。 第三处:取字符串指针 tt 的下一个位置,所以应改为:tt+; 。 * 请编写函数 fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第 1 到第 m 个字符, 平移到字符串的最后, 把第 m

27、+1 到最后的字符移到字符串的前部。 例如, 字符串中原有的内容为: ABCDEFGHIJK, m 的值为 3, 则移动后, 字符串 /* 宏为世纪教育 */ 中的内容应该是: DEFGHIJKABC 。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其它函数中的任何内容 , 仅在函数 fun 的花括号中填入 你编写的若干语句。 给定源程序: #include #include #define N 80 void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ int i; char t; t=w0; for(i=0;i ty

28、pedef struct int num; char name9; char sex; struct int year,month,day ; birthday; float score3; STU; /*found*/ void show(STU _1_) int i; printf(“n%d %s %c %d-%d-%d“, tt.num, tt.name, tt.sex, tt.birthday.year, tt.birthday.month, tt.birthday.day); for(i=0; i #define N 20 int fun ( int * a, int n ) int

29、 i, m, t, k ; for(i=0;iam) k=m; t=ai;ai=am;am=t; /* 宏为世纪教育 */ main( ) int x, bN=11,5,12,0,3,6,9,7,10,8, n=10, i; for ( i=0; iam) m=k;。 * 请编写一个函数 unsigned fun ( unsigned w ),w 是一个大于 10 的无符 号整数,若 w 是 n (n 2)位的整数,函数求出 w 的低 n-1 位的数作为函数值返 回。 例如:w 值为 5923,则函数返回 923; w 值为 923 则函数返回 23。 注意: 部分源程序存在文件 PROG1

30、.C 中。 请勿改动主函数 main 和其它函数中的任何内容, 仅在函数 fun 的花括号中填入 你编写的若干语句。 给定源程序: #include unsigned fun ( unsigned w ) main( ) unsigned x; printf ( “Enter a unsigned integer number : “ ); scanf ( “%u“, printf ( “The original data is : %un“, x ); if ( x 10000) w %= 10000 ; else if(w1000) w %= 1000 ; else if(w100) w

31、%= 100 ; else if(w10) w %=10 ; return w ; 第 08 套: 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、 姓名和 3 门课的成绩。函数 fun 的功能是将 该学生的各科成绩都乘以一个系数 a。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include /* 宏为世纪教育 */ typedef struct int num; char name9; float score3; STU;

32、void show(STU tt) int i; printf(“%d %s : “,tt.num,tt.name); for(i=0; i_2_ *=a; main( ) STU std= 1,“Zhanghua“,76.5,78.0,82.0 ; float a; printf(“nThe original number and name and scores :n“); show(std); printf(“nInput a number : “); scanf(“%f“, /*found*/ modify(_3_,a); printf(“nA result of modifying :

33、n“); show(std); 解题思路: 本题是利用结构体存储学生记录并由实参 ss 返回。 第一处:实参 ss 是一个结构型指针变量,所以应填:STU。 第二处:该学生的各科成绩都乘以一个系数 a,所以应填:scorei。 第三处:函数的调用,由于函数定义时使用的指针结构型变量,所以应填: /* 宏为世纪教育 */ /*found*/ else if ( k=0 ) return 1L; main() int k = 10 ; printf(“%d!=%ldn“, k, fun ( k ) ; 解题思路: 第一处:条件判断缺少圆括号。 第二处:判断相等的符号是=。 * 程序定义了 NN

34、的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN, int n),函数的功能是:使数组左下三角元素中的值乘以n 。 例如:若 n 的值为 3,a 数组中的值为 | 1 9 7 | | 3 9 7 | a = | 2 3 8 | 则返回主程序后 a 数组中的值应为 | 6 9 8 | | 4 5 6 | | 12 15 18| 注意: 部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其它函数中的任何内容, 仅在函数 fun 的花括号中填入 你编写的若干语句。 给定源程序: #include #include #define N 5 int fun ( in

35、t aN, int n ) main ( ) int aNN, n, i, j; printf(“* The array *n“); for ( i =0; i=3 ); printf(“n = %4dn“,n); fun ( a, n ); printf (“* THE RESULT *n“); for ( i =0; iN; i+ ) for ( j =0; jN; j+ ) printf( “%4d“, aij ); printf(“n“); NONO( ); 解题思路: 本题是利用两重循环给二维数组左下三角元素中的值乘以 n。 参考答案: int fun ( int aN, int n ) int i, j;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报