(1)巩固一下C语言基础知识,谁动手,谁收获。
2011-11-04 18:12
453 查看
参加的一个比赛里面的基础性的C语言小程序编写,大家可以练习一下,巩固一下基础知识。不要拷贝别人的代码,自己亲自动手写一下,别管是否简单。
问题1:
编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。(20分)
a12 b8 c5
12 0 0
* * *( “*”表示当前状态下每个容器的盛水量)
......
6 6 0
问题2:
编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},将数组a的每一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行输出新数组。(20分)
问题3:
编程:设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)- cos(x)的最大值,要求使用自定义函数实现f(x)功能。(20分)
问题4:
编写函数fun,通过指针实现将一个字符串反向。要求主函数输入字符串,通过调用函数fun实现输入字符串反向。(20分)
问题5:
已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(20分)
姓名 数学 英语 计算机
Mary 93 100 88
Jone 82 90 90
Peter 91 76 71
Rose 100 80 92
问题6:
编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),以“000”作为字符串输入结束标志,例如:
Twinkle twinkle little star 000(回车)
twinkle little star
2 1 1 (50分)
问题1的实现代码:
问题2实现代码:
问题3实现代码:
问题4实现代码:
问题5实现代码:
问题6实现代码:
问题1:
编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。(20分)
a12 b8 c5
12 0 0
* * *( “*”表示当前状态下每个容器的盛水量)
......
6 6 0
问题2:
编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},将数组a的每一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行输出新数组。(20分)
问题3:
编程:设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)- cos(x)的最大值,要求使用自定义函数实现f(x)功能。(20分)
问题4:
编写函数fun,通过指针实现将一个字符串反向。要求主函数输入字符串,通过调用函数fun实现输入字符串反向。(20分)
问题5:
已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(20分)
姓名 数学 英语 计算机
Mary 93 100 88
Jone 82 90 90
Peter 91 76 71
Rose 100 80 92
问题6:
编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),以“000”作为字符串输入结束标志,例如:
Twinkle twinkle little star 000(回车)
twinkle little star
2 1 1 (50分)
问题1的实现代码:
/*author:宋金时*/ /*date:2011/11/01*/ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i_w[]= {12,0,0}; printf("a12 b8 c5\n"); while(i_w[0]!=6) { if(i_w[1]==0) { i_w[1]=8; i_w[0]=i_w[0]-8; i_w[2]=12-i_w[0]-i_w[1]; } else { if(i_w[2]<5) { if(i_w[1]>(5-i_w[2])) { i_w[1]-=5-i_w[2]; i_w[2]=5; i_w[0]=12-i_w[1]-i_w[2]; } else { i_w[2]+=i_w[1]; i_w[1]=0; i_w[0]=12-i_w[1]-i_w[2]; } } else { i_w[0]+=i_w[2]; i_w[2]=0; i_w[1]=12-i_w[0]-i_w[2]; } } printf("%d %d %d\n",i_w[0],i_w[1],i_w[2]); } system("PAUSE"); return 0; }
问题2实现代码:
/*author:宋金时*/ /*date:2011/11/01*/ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { float f_arr[][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}}; float f_temp=0; int i,j; for(i=0;i<3;i++) { f_temp=f_arr[i][i]; for(j=0;j<3;j++) { f_arr[i][j]/=f_temp; printf("%f ",f_arr[i][j]); } printf("\n"); } system("PAUSE"); return 0; }
问题3实现代码:
/*author:宋金时*/ /*date:2011/11/01*/ #include <stdio.h> #include <stdlib.h> #include <math.h> float f(int x) { return (x-sin(x)-cos(x)); } int main(int argc, char *argv[]) { float f_max,f_temp=0; int i,pos; f_max=f(1); for(i=0;i<20;i++) { f_temp=f(i+1); if(f_max<f_temp) { f_max=f_temp; pos=i+1; } } printf("max is %f\npos is %d\n",f_max,pos); system("PAUSE"); return 0; }
问题4实现代码:
/*author:宋金时*/ /*date:2011/11/01*/ #include <stdio.h> #include <stdlib.h> /*三种实现方法*/ //void fun(char* str) //{ // int len = strlen(str); // char* s_temp = (char*)malloc(len+1); // strcpy(s_temp , str); // char* s_p = s_temp+len-1; // while(s_p>=s_temp) // { // *str++=*s_p--; // } // free(s_temp); // s_temp=NULL; // } //void fun(char *str) //{ // char* s_p = str + strlen(str)-1; // while(s_p>=str) // { // printf("%c",*s_p); // s_p--; // } // } char* fun(char* str) { char* ret = str; char* s_p = str+strlen(str)-1; while(s_p>str) { *str^=*s_p; *s_p^=*str; *str^=*s_p; s_p--; str++; } return ret; } int main(int argc, char *argv[]) { char str[20]; printf("please input a string:"); scanf("%s",str); printf("%s\n",fun(str)); system("PAUSE"); return 0; }
问题5实现代码:
/*author:宋金时*/ /*date:2011/11/01*/ #include <stdio.h> #include <stdlib.h> typedef struct student { char name[20]; float f_math,f_english,f_compute,f_ave; }stu; stu g_arr[4]={{"Mary",93,100,88},{"Jone",82,90,90},{"Peter",91,76,71},{"Rose",100,100,92}}; void c_ave(stu s_arr[],int i_n) { int i; for(i=0;i<i_n;i++) { s_arr[i].f_ave = (s_arr[i].f_math+s_arr[i].f_english+s_arr[i].f_compute)/3; } } void sort(stu s_arr[],int i_n) { stu* s_p[i_n],*s_temp; int i,j,i_num; float f_temp; for(i=0;i<i_n;i++) { s_p[i]=&s_arr[i]; } for(i=0;i<i_n;i++) { i_num = i; for(j=i+1;j<i_n;j++) { if(s_p[i_num]->f_ave<s_p[j]->f_ave) { i_num = j; } } if(i_num!=i) { s_temp = s_p[i]; s_p[i] = s_p[i_num]; s_p[i_num] = s_temp; } printf("%s %f %f %f %f\n",s_p[i]->name\ ,s_p[i]->f_math,s_p[i]->f_english\ ,s_p[i]->f_compute,s_p[i]->f_ave); } } int main(int argc, char *argv[]) { c_ave(g_arr,4); printf("姓名 数学 英语 计算机\n"); sort(g_arr,4); system("PAUSE"); return 0; }
问题6实现代码:
/*author:宋金时*/ /*date:2011/11/01*/ #include <stdio.h> #include <stdlib.h> #define N 10 void tongji(char string[],char str[][20],int num[]); int main(int argc, char *argv[]) { char string[N*20]; char str [20]; int num ={0}; printf("please input a string:"); gets(string); printf("%s\n======================================================\n",string); tongji(string,str,num); system("PAUSE"); return 0; } void tongji(char string[],char str[][20],int num[]) { char* s_p = string; char (*s_pp)[20] = str; char temp[20]; char* p_temp = temp; int i,len=0; int* i_temp = num; for(i=0;string[i]!=0;i++) string[i]=tolower(string[i]); while(*s_p!='\0'&&*s_p!='0') { p_temp = temp; while(*s_p!=' '&&*s_p!='\0') { *p_temp++=*s_p++; } *p_temp='\0'; for(i=0;i<10;i++) { if(!strcmp(temp,*(str+i))) { num[i]++; break; } } if(i==10) { strcpy(*s_pp,temp); (*i_temp)+=1; i_temp++; s_pp++; len++; } if(*s_p==' ') s_p++; } for(i=0;i<len;i++) { printf("%s ",*(str+i)); } printf("\n"); for(i=0;i<len;i++) { printf("%d ",num[i]); } printf("\n"); }
相关文章推荐
- (7)巩固一下C语言基础知识,谁动手,谁收获。
- (2)巩固一下C语言基础知识,谁动手,谁收获。
- (3)巩固一下C语言基础知识,谁动手,谁收获。
- (4)巩固一下C语言基础知识,谁动手,谁收获。
- (5)巩固一下C语言基础知识,谁动手,谁收获。
- (6)巩固一下C语言基础知识,谁动手,谁收获。
- C语言基础知识巩固
- 最近翻译了一下国外的w3schools,巩固一下基础知识,希望对大家有所帮助
- 汇编语言基础之八- 动手练习,将前面的知识用于实践
- 基础知识--脚本语言
- 测试一下你的T-SQL基础知识-count
- 软考—软件设计师—第2章程序设计语言基础知识
- OC语言基础知识
- C语言基础知识之(一):进制、基本数据类型、常量、变量、表达式、语句
- 黑马程序员——java语言基础——总结一下学习过的类
- JavaScript语言基础知识11
- C语言基础知识(1)
- 学ios需要了解的C语言基础知识-3-分支结构循环结构
- javascript真的不难-回顾一下基础知识
- c语言基础知识回顾1