(5)巩固一下C语言基础知识,谁动手,谁收获。
2011-11-06 18:51
363 查看
问题18:
编写一个函数InverseByWord(char*sentence),实现一个英文句子按单词逆序存放的功能,并给出测试程序。(50分)
如:This is aninteresting programme .
逆序后变为:. programme interesting an isThis
问题19:
编程完成数据加密。数据是五位的整数,加密规则为:每位数字都加上6,然后用和除以8的余数代替该数字,再将第一位和第五位交换,第二位和第四位交换。(15分)
问题20:
请猜数字,该数字由系统随即产生。要求:用户最多有10次猜测的机会,如果在10次内猜对数字,则程序显示祝贺信息,如果连续10次都没有猜中数字,则游戏自动退出。(25分)
(提示:可能用到以下库函数:
randomize();用系统的时间作为随机种子;包含于stdlib.h库中
random(100):随机产生0-99之间的一个随机数;包含于stdlib.h库中
toupper():将字符c转换为大写英文字母,包含于ctype.h库中)
问题18实现代码:
问题19实现代码:
问题20实现代码:
编写一个函数InverseByWord(char*sentence),实现一个英文句子按单词逆序存放的功能,并给出测试程序。(50分)
如:This is aninteresting programme .
逆序后变为:. programme interesting an isThis
问题19:
编程完成数据加密。数据是五位的整数,加密规则为:每位数字都加上6,然后用和除以8的余数代替该数字,再将第一位和第五位交换,第二位和第四位交换。(15分)
问题20:
请猜数字,该数字由系统随即产生。要求:用户最多有10次猜测的机会,如果在10次内猜对数字,则程序显示祝贺信息,如果连续10次都没有猜中数字,则游戏自动退出。(25分)
(提示:可能用到以下库函数:
randomize();用系统的时间作为随机种子;包含于stdlib.h库中
random(100):随机产生0-99之间的一个随机数;包含于stdlib.h库中
toupper():将字符c转换为大写英文字母,包含于ctype.h库中)
问题18实现代码:
/* author:宋金时 */ /* date:2011/11/03 */ #include "Stdio.h" #include "Conio.h" #define N 200 void InverseByWord(char* sentense); int main(void) { /* 此处添加你自己的代码 */ char str ,*str_temp; puts("please input a sentense:"); gets(str); InverseByWord(str); /* puts(str); */ /* printf("%s\n",InverseByWord(str));*/ getch(); return 0; } void InverseByWord(char* sentense) { char* begin_p,*end_p,*str_new; begin_p = sentense; end_p = sentense+strlen(sentense)-1; str_new = (char*)malloc(strlen(sentense)+1); memset(str_new,0,strlen(sentense)+1); while(end_p>begin_p) { while(*end_p!=' '&&end_p>begin_p) { end_p--; } if(*end_p==' ') { *end_p='\0'; end_p++; strcat(str_new,end_p); strcat(str_new," "); } else { strcat(str_new,end_p); } } puts(str_new); /* strcpy(sentense,str_new); puts(sentense); */ free(str_new); str_new = NULL; /* strcpy(sentense,str_new); */ /* puts(sentense); */ /* return str_new; */ }
问题19实现代码:
/* author宋金时 */ /* date:2011/11/03 */ #include "Stdio.h" #include "Conio.h" #define N 5 int main(void) { /* 此处添加你自己的代码 */ int m_num,m_temp,m_i,m_j,arr_bit[5]; puts("please input a 5 bits number:"); scanf("%d",&m_num); m_temp = m_num; for(m_i=0;m_i<N;m_i++) { arr_bit[m_i] = (m_temp%10 + 6)%8; m_temp/=10; } m_i=0; m_j=N-1; while(m_i<m_j) { /* m_temp = arr_bit[m_i]; */ arr_bit[m_i]^=arr_bit[m_j]; arr_bit[m_j]^=arr_bit[m_i]; arr_bit[m_i]^=arr_bit[m_j]; m_i++; m_j--; } printf("maked digtal is %d\n",m_temp=(arr_bit[0]+\ arr_bit[1]*10+arr_bit[2]*100+arr_bit[3]*1000+arr_bit[4]*10000)); getch(); return 0; }
问题20实现代码:
/* author:宋金时 */ /* date:2011/11/03 */ #include "Stdio.h" #include "stdlib.h" #include "time.h" #include "ctype.h" #include "Conio.h" int main(void) { /* 此处添加你自己的代码 */ int m_randnum,m_count=0,m_input; randomize(); m_randnum = random(100); while(m_count<10) { m_count++; puts("please 0-99 number:"); scanf("%d",&m_input); if(m_input==m_randnum) { puts("congratulations you!answer very right!"); break; } else { if(m_input>m_randnum) { puts("very be sorry!answer error,so big!"); } else puts("very be sorry!answer error,so little!"); } } printf("total guess %d once\n",m_count); getch(); return 0; }
相关文章推荐
- (1)巩固一下C语言基础知识,谁动手,谁收获。
- (7)巩固一下C语言基础知识,谁动手,谁收获。
- (2)巩固一下C语言基础知识,谁动手,谁收获。
- (3)巩固一下C语言基础知识,谁动手,谁收获。
- (4)巩固一下C语言基础知识,谁动手,谁收获。
- (6)巩固一下C语言基础知识,谁动手,谁收获。
- C语言基础知识巩固
- 最近翻译了一下国外的w3schools,巩固一下基础知识,希望对大家有所帮助
- 汇编语言基础之八- 动手练习,将前面的知识用于实践
- 基础知识--脚本语言
- 测试一下你的T-SQL基础知识-count
- 软考—软件设计师—第2章程序设计语言基础知识
- OC语言基础知识
- C语言基础知识之(一):进制、基本数据类型、常量、变量、表达式、语句
- 黑马程序员——java语言基础——总结一下学习过的类
- JavaScript语言基础知识11
- C语言基础知识(1)
- 学ios需要了解的C语言基础知识-3-分支结构循环结构
- javascript真的不难-回顾一下基础知识
- c语言基础知识回顾1