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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(上机填空题3336.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

上机填空题3336.docx

1、上机填空题3336上机填空题33-36.txt25爱是一盏灯,黑暗中照亮前行的远方;爱是一首诗,冰冷中温暖渴求的心房;爱是夏日的风,是冬日的阳,是春日的雨,是秋日的果。33题目: 函数fun的功能是:将形参a所指数组中的前半部分元素中值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。 例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include

2、 #define N 9 void fun(int a, int n) int i, t, p; p = (n%2=0)?n/2:n/2+_1_; for (i=0; in/2; i+) t=ai; ai = ap+_2_; _3_ = t; main() int bN=1,2,3,4,5,6,7,8,9, i; printf(nThe original data :n); for (i=0; iN; i+) printf(%4d , bi); printf(n); fun(b, N); printf(nThe data after moving :n); for (i=0; iN; i+)

3、printf(%4d , bi); printf(n); 34题目: 请补充fun函数,该函数的功能是:分类统计一个字符串中元音字母和其它字符的个数(不区分大小写)。 例如:输入aeiouAUpqr,结果为A:2 E:1 I:1 O:1 U:2 other:3。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #include #define N 100 void fun(char *str,int bb) char *p=str; int i=0; for(i=0;i6;i+) _1

4、_; while(*p) switch (*p) case A: case a: bb0+; break; case E: case e: bb1+; break; case I: case i: bb2+; break; case O: case o: bb3+; break; case U: case u: bb4+; break; default:_2_; _3_ main() char strN,ss5=AEIOU; int i; int bb6; clrscr(); printf(Input a string: n); gets(str); printf(the string is:

5、 n); puts(str); fun(str,bb); for(i=0;i5;i+) printf(n%c:%d,ssi,bbi); printf(nother:%dn,bbi); 35题目: str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充fun函数,该函数的功能是:统计字符串str中的单词数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。 例如:str=how are you,结果为:num=3。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干

6、表达式或语句。 #include #define N 80 void fun(char *s,int *num) int i,n=0; for(i=0;_1_;i+) if(si=a&si=z&si+1= |si+1=0) _2_; _3_; main() char strN; int num=0; printf(Enter a string :n); gets(str); while(strnum) num+; fun( str,&num ); printf(The number of word is : %dnn,num); 36题目: str是一个由数字和字母字符组成的字符串,由变量nu

7、m传入字符串长度。请补充fun函数,该函数的功能是把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。 例如:str=Abc123e456hui7890,结果为:1234567890。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 80 int bbN; int fun(char s,int bb,int num) int i,n=0; for(i=0;inum;i+) if(_1_) bbn=_2_; n+; return _3_

8、; main() char strN; int num=0,n,i; printf(Enter a string :n); gets(str); while(strnum) num+; n=fun( str,bb,num ); printf(nbb= ); for(i=0;in;i+) printf(%d,bbi); printf(n); 来吧,淘宝网上有更多精采特产年度热卖榜 进口美食地图 解答33分析: 程序注解如下: #include #define N 9 /* a为数组,n为a数组中成员的个数 */ void fun(int a, int n) int i, t, p; /* 计算数

9、组a中间位置p,如果数组成员个数为偶数则取n/2,否则取n/2+1 */ /* n%2=0用于判断n是否为偶数 */ p = (n%2=0)?n/2:n/2+1; /* 使用循环进行对换 */ for (i=0; in/2; i+) /* 将使用t变量保存左边的数组成员数据 */ t=ai; /* 将左边数组成员对应的右边数组成员移动到左边位置 */ ai = ap+ i; /* 将预先存放在t变量中的原左边数组成员移动到右边位置 */ ap+i = t; main() int bN=1,2,3,4,5,6,7,8,9, i; printf(nThe original data :n); /*

10、 输出处理之前的数组成员 */ for (i=0; iN; i+) printf(%4d , bi); printf(n); fun(b, N); printf(nThe data after moving :n); /* 输出处理之后的数组成员 */ for (i=0; iN; i+) printf(%4d , bi); printf(n); 34分析: 题目要求在fun函数中分类统计传入的字符串str中元音字母和其它字符的个数(不区分大小写),然后将这些个数作为bb数组的成员。 元音字母一共有五个,分别是A、E、I、O、U。由于不区分大小写,所以小写的a、e、i、o、u和A、E、I、O、U

11、中对应的字符算一个字符。例如A和a被看成同一个字符。 为了实现题目要求,程序设置指针p指向str字符串第一个字符,然后通过往后移动p指针逐一判断p当前指向的指针是否为元音字母或者非元音字母。当发现某元音字母的时候将该元音字母的个数加一即可。 程序注解如下: #include #include #define N 100 /* str字符串统计元音字母和其它字符的个数的字符串 */ /* bb数组存放找到的元音字母和其他字符的个数 */ void fun(char *str,int bb) /* 将p指针指向str字符串的第一个字符 */ char *p=str; int i=0; /* 存放字

12、符个数的bb数组每一个成员初始化为0,因为下面需要进行个数累加 */ for(i=0;i6;i+) bbi=0; /* while(*p)是while(*p!=0)的简写方式 * /* while循环的循环条件是p指针当前指向的字符不是结束标记符0 */ while(*p) /* 判断p指针当前指向的字符是否为元音字符 */ switch (*p) /* 判断p指针当前指向的字符是否为A或者a */ /* bb第一个成员记录A或者a的个数 */ case A: case a: bb0+; break; /* 判断p指针当前指向的字符是否为E或者e */ /* bb第二个成员记录E 或者e的个数

13、 */ case E: case e: bb1+; break; /* 判断p指针当前指向的字符是否为I或者i */ /* bb第三个成员记录I或者i的个数 */ case I: case i: bb2+; break; /* 判断p指针当前指向的字符是否为O或者o */ /* bb第四个成员记录O或者o的个数 */ case O: case o: bb3+; break; /* 判断p指针当前指向的字符是否为U或者u */ /* bb第五个成员记录U或者u的个数 */ case U: case u: bb4+; break; /* p指针当前指向的字符不是元音字符的时候 */ /* bb第六

14、个成员记录非元音字符的个数 */ default:bb5+; /* p指针移动到str字符串中下一个字符 */ p+; main() char strN,ss5=AEIOU; int i; int bb6; /* clrscr函数用于清除输出窗口中已经显示的内容 */ /* clrscr函数定义在conio.h ,所以需要#include */ clrscr(); printf(Input a string: n); /* gets函数用于接收键盘输入的字符串,将其放入参数中 */ /* gets函数定义在stdio.h ,所以需要#include */ gets(str); printf(t

15、he string is: n); /* puts函数用于将参数中包含的字符串输出在输出窗口 */ /* puts函数定义在stdio.h ,所以需要#include */ puts(str); fun(str,bb); /* 输出元音字母和对应的个数 */ for(i=0;i5;i+) printf(n%c:%d,ssi,bbi); /* 输出其他字符的个数 */ printf(nother:%dn,bbi); 35分析: 题目要求在fun函数中统计字符串str中的单词数,结果由变量num传回。str是全部由小写字母字符和空格字符组成的字符串,每个单词之间都由空格隔开,并且字符串str开始不

16、存在空格。而要统计单词数,需要逐一检查str字符串中每一个字符。 (1)如果某一个位置的字符是小写字母而紧接着的后一个字符为空格,则说明发现一个单词。 (2)第一种方法不能发现最后一个单词,例如str字符串为how are you,最后一个单词you不符合以上要求,所以需要单独判断。方法是判断某一个字符紧接着的后一个字符为字符串结束标记0。如果是则说明该字符位于字符串最后一个单词。 程序注解如下: #include #define N 80 /* num指针指向的地址里的内容为s字符串中字符的个数 */ void fun(char *s,int *num) /* n记录在s字符串中单词的个数

17、*/ int i,n=0; /* 逐一检查s字符串中的字符,由于num是指针类型 */ /* 所以需要用*运算符取num指针指向的地址里的内容,即s字符串中字符个数 */ for(i=0;i=a&si=z&si+1= |si+1=0) /* 当发现一个新的单词,记录单词个数的n需要加一 */ n+; /* 将单词数覆盖num指针指向的地址中的内容,以便main函数能接收到 */ *num=n; main() char strN; int num=0; printf(Enter a string :n); /* gets函数用于接收键盘输入的字符串,将其放入参数中 */ /* gets函数定义在

18、stdio.h ,所以需要#include */ gets(str); /* while(strnum)是while(strnum!= 0)的简写方式 */ /* 以下while循环作用是逐个检查str字符串的字符是否为结束标记0 */ /* 所以当循环结束时,num则保存了str字符串的字符个数 */ while(strnum) num+; /* 采取传地址方式传入num变量的地址 */ fun( str,&num ); /* 输出单词的个数 */ printf(The number of word is : %dnn,num); 36分析: 题目要求在fun函数中把字符串str中的数字字符

19、转换成数字并存放到整型数组bb中,函数返回数组bb的长度。 在程序中,需要判断某一个字符是否是非数字字符还是数字字符。判断方法就是检查该字符的ASCII码是否大于0字符的ASCII码而小于9的ASCII码。也就是说只要某字符的ASCII码值在0字符和9字符两个ASCII码值之间,该字符就是数字字符。 ASCII全称是美国标准信息交换码(American Standard Code for Information Interchange)。在这张表中,小写字母0的ASCII码值为48,小写字母1的ASCII码值为49,小写字母2的ASCII码值为50,后面的数字字符的ASCII码值依次类推,最后

20、的9的ASCII码值为57。所有的数字字符在ASCII码表中是按顺序排列的,它们在ASCII表的码值开始于48,结束于57。 而根据C语言的语法,判断两个字符之间的大小实际上是比较两个字符在ASCII表中的码值大小。例如7字符大于6字符,因为7的ASCII码值为55,6的ASCII码值为54,7的ASCII码值大于6的ASCII码值。使用C语言描述就是76这个表达式成立。 综上所述,判断某个字符是否为数字字符只要判断该字符的ASCII码值是否在0和9之间即可。如果在这范围之内,该字符就是数字字符,否则不是。 程序采用for循环一个个检查str字符串中的每一个字符。如果字符的ASCII码值位于0

21、和9之间,则说明该字符是一个数字字符。程序将它从char类型转换为int类型,然后将转换得到的值放入bb数组中。 程序将char类型的数字字符转换为int类型的数字采用了ASCII表中数字字符的ASCII码是连续的这个特性。任何char类型的数字字符x减去0,即x-0都将执行x的ASCII码值减去0的码值,由于数字字符的ASCII码是连续的,所以x-0的直接后果就是得到了和x对应的int类型的值,也就达到了将char类型的数字字符x转化为int类型的数值。 程序将str字符串中的数字字符从char类型转换为int类型之后放入bb数组,而放入bb数组的位置需要由n变量来决定。由于数组从0开始,所

22、以n初始值设置为0。然后每一次在bb数组中放入一个数字之后n都必须增加一,以便下一次放入数字的时候能使用n指示放入的位置。 程序注解如下: #include #define N 80 int bbN; int fun(char s,int bb,int num) /* n指示数字放入bb数组的位置,由于数组从0开始,所以初始值设置为0 */ int i,n=0; for(i=0;i=0&si=9) /* 将si的ASCII码值减去0的ASCII码值,得到si与0的差距 */ /* 作用就是将si从char类型转换成int类型 */ bbn=si-0; /* n变量加一,指示下一个数字放入bb数

23、组的位置 */ n+; /* 以上for循环结束的时候n变量的值则为bb数组中的数字个数 */ return n; main() char strN; int num=0,n,i; printf(Enter a string :n); /* gets函数用于接收键盘输入的字符串,将其放入参数中 */ /* gets函数定义在stdio.h ,所以需要#include */ gets(str); /* 以下while循环作用是逐个检查str字符串的字符是否为结束标记0 */ /* 所以当循环结束时,num则保存了str字符串的字符个数 */ while(strnum) num+; n=fun( str,bb,num ); printf(nbb= ); /* 输出保存在bb数组中的数字 */ for(i=0;in;i+) printf(%d,bbi); printf(n);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1