C语言经典例题(带答案)
C语言复习题纪实解答(有好方法的互相交流!)
1.题:
#include "stdio.h"
main()
{
float i,s=0;
for(i=3;i<=10;i++)
{
s=s+(i+2)*(i+3)/(i+4);
}
printf("s=%.2f",s);
}
2.题:
#include "stdio.h"
void main()
{int score;
scanf("%d",&score);
switch(score/5)
{
case 20:
case 19:
case 18:printf("A\n");break;
case 17:
case 16:
case 15:printf("B\n");break;
case 14:
case 13:
case 12:printf("C\n");break;
case 11:
case 10:
case 9:
case 8:
case 7:
case 6:
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf(" D I`m so sorry your IQ==0 \n");break;
default:break;
}
}
3.题:(if语句)
#include "stdio.h"
main()
{
int x,y;
scanf("%d",&x);
if(x<-5) y=x;
if(x>=-5&&x<=0) y=x+1;
if(x>0&&x<=5) y=x-1;
if(x>5) y=2*x;
printf("y= %d\n",y);
}
4.题:
有谁会第四题给我发来。
我真的不会啊!!!!
5.题:
一、
#include "stdio.h"
void main()
{
int max_value(int a[3][3]);
int i,j,a[3][3]={3,8,-2,5,6,10,4,9,18};
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{
printf("%d ",a[i][j]); /*此部分为显示出矩阵(4~8行)可无*/ }
printf("\n");
}
printf("\n the max is: %d\n",max_value(a));
}
int max_value(int a[3][3])
{
int i,j,max;
i=0;
max=a[0][0];
for(j=0;j<3;j++)
{
if(a[i][j]>max)
max=a[i][j];
}
return (max);
}
二、在以一的基础上修改:
#include "stdio.h"
void main()
{
int max_value(int a[3][3]);
int i,j,a[3][3]={3,8,-2,5,6,10,4,9,18};
printf("\n the max is: %d\n",max_value(a));
}
int max_value(int a[3][3])
{
int i,j,max;
max=a[0][0];
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{
if(a[i][j]>max)
max=a[i][j];
}
}
return (max);
}
6.题:
方法一:(循环语句)
#include "stdio.h"
void main()
{
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<3-i;j++)
{
printf(" ");
}
printf("***\n");
}
}
方法二:(数组)
#include "stdio.h"
void main()
{
int i,j;
char a[4][6]={'','','','*','*','*','','','*','*','*','','','*','*','*','','','*','*','*'};
for(i=0;i<4;i++)
{
for(j=0;j<6;j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
}
7.题:
#include "string.h"
main()
{
char string[81];
void reverse(char str[]);
clrscr();
printf("please input the string:\n");
gets(string);
reverse(string);
printf("after reverse:\n");
puts(string);
getch();
}
void reverse(char str[])
{
int i,t,len;
len=strlen(str);
for(i=0;i { t=str[i]; str[i]=str[len-i-1]; str[len-i-1]=t; } } 8.题: #include "math.h" void main() { int i,x; printf("please input x: \n"); scanf("%d %d",&x,&i); printf("x^i= %.0f\n",pow(x,i)); } 9.题:(数组法) 第一问: #include "stdio.h" void main() { int i,j; float m[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; float ave,s=0; int i,j; float m[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; float ave,s=0; for(i=0;i<4;i++) { for(j=0;j<3;j++) { printf("%.0f\t",m[i][j]); /*此部分为显示出矩阵*/ } printf("\n"); } printf("average stu_1-4 score is: \n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) { 精简后: #include "stdio.h" void main() { int i,j; float m[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; float ave,s=0; printf("average stu_1-4 score is: \n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) { s=s+m[i][j]; } ave=s/3; printf("stu %d,ave= %.1f\n",i+1,ave); s=0; } } s=s+m[i][j]; printf("s=%.0f\n",s); /*调试部分,检验s和输出衡行数据的值*/ printf("%.0f ",m[i][j]); /*调试部分可省略*/ } printf("\n"); ave=s/3; printf("stu %d,ave= %.1f\n",i+1,ave); s=0; } } 第二问与第一问相似,转一下就行了。 第三问: #include "stdio.h" void main() { int i,j; float a[4][3]={78,67,89,45,98,93,91,67,84,84,48,88}; printf("score more than 90 are : \n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) { if(a[i][j]>=90) printf(" %.0f\n",a[i][j]); } printf("i= %d,j= %d\n",i,j); } } 10.题: 第一问: #include "stdio.h" void main() { struct stu { char name[10]; float c_score,math_score,eng_score; }; int i; float ave,s=0; struct stu a[4]={"lilin",78,67,89,"zhouyi",45,98,93,"suwei",91,67,84,"zhangli",84,48,88}; /* for(i=0;i<4;i++) { printf("name%s\nc_score%.0f\nmath_score%.0f\neng_score%.0f\n\n",a[i].name,a[i].c_score,a[i]. math_score,a[i].eng_score); } */ /*调试部分可省略*/ for(i=0;i<4;i++) { s=s+a[i].c_score+a[i].math_score+a[i].eng_score; /* printf("s=%.0f\n",s); */ /*调试部分可省略*/ ave=s/3; printf("ave_student %d,ave is: %.0f\n",i+1,ave); s=0; } } 第二问: #include "stdio.h" void main() { struct stu { char name[10]; float c_score,math_score,eng_score; }; int i; float ave,s=0; struct stu a[4]={"lilin",78,67,89,"zhouyi",45,98,93,"suwei",91,67,84,"zhangli",84,48,88}; for(i=0;i<4;i++) { s=s+a[i].c_score; } ave=s/4; printf("ave_c_score is: %.0f\n",ave); s=0; for(i=0;i<4;i++) { s=s+a[i].math_score; } ave=s/4; printf("ave_math_score is: %.0f\n",ave); s=0; for(i=0;i<4;i++) { s=s+a[i].eng_score; } ave=s/4; printf("ave_eng_score is: %.0f\n",ave); } 第三问:(用if语句即可这里不再给出答案) 先看一下电脑的“系统资源”是多少,右键单击“我的电脑”,选择“属性”,再选择“性能”,看一下“系统资源”是多少,一般应该达到95%左右还差不多。 1、电脑桌面上的东西越少越好,我的电脑桌面上就只有“我的电脑”和“回收站”。东西多了占系统资源。虽然在桌面上方便些,但是是要付出占用系统资源和牺牲速度的代价。解决办法是,将桌面上快捷方式都删了,因为在“开始”菜单和“程序”栏里都有。将不是快捷方式的其他文件都移到D盘或E盘,不要放在C盘。C盘只放WINDOWS的文件和一些程序安装必须安装在C盘的,其他一律不要放在C盘,放在D盘或E盘。 2、右键单击“我的电脑”,选择“属性”,再选择“性能”,单击左面“文件系统”,有一个“此计算机的主要用途(T)”选项,下拉那个箭头,将“台式机”改为“网络服务器”,然后确定。再选择右面的“虚拟内存”,选择“用户自己指定虚拟内存设置(M)”,然后将最大值和最小值都改为你电脑内存的数值乘以2,比如是128兆内存,则设置为“256”,然后确定,不用理会显示的提示,确定以后需要重新启动。 3、打开“我的电脑”,打开C盘,有一个Windows文件夹,打开它,找到一个“Temp文件夹”,把里面的文件全部删除,(需要事先关闭其他应用程序)。在“Temp文件夹”旁边有个“Temporary Internet Files文件夹”,打开,把里面的内容全部删除。一定注意啊,“Temp文件夹”和“Temporary Internet Files文件夹”不要也 删了,是删文件夹里面的所有东西。切记!!!这样的操作最好一个月进行一次。 4、将电脑屏幕最下面的一行东西,只留下杀毒软件的实时监控图标和最左面的“开始”,其他的全部删除,因为占系统资源,而且有很多东西根本不用。即使用的在“开始”菜单里也全有。可以将最常用的软件的快捷方式添加在开始菜单,将次常用的添加在程序菜单。 5、将桌面墙纸和屏幕保护程序都设置为“无”. 6、选择左下角的“开始”——“程序”——“附件”——“系统工具”——“维护向导”,选择“修改我的维护设置或安排”确定,再选择“自定义”,下一步,“自定义”,再下一步,出现一个对话框“更加快速地启动Windows”,将里面的对勾全部取消啊,这是开机时启动的程序,有的根本不用的,如果用再启动也很快的。然后下一步,选择“否”再下一步,再选“否”,再下一步,还是“否”,然后“完成”。OK! 7、选择左下角的“开始”——“程序”——“附件”——“系统工具”——“磁盘扫描程序”,选中上面的“自动修复错误”然后“开始”,很快就修复完毕,把你所有的硬盘C、D、E、F都修复一遍,然后“关闭”退出。 8、选择左下角的“开始”——“程序”——“附件”——“系统工具”——“磁盘碎片整理程序”,下拉菜单中选择“所有的硬盘”然后确定,然后你就等着吧,可以去休息一会了,呵呵。如果以前从来没有运行过这个程序的话,而且你的硬盘很大,那么可能得1个小时多的 时间(如果觉得时间长,可以停下来,分几次以后再运行也可以)。这个程序以后应该1个月左右运行一次,第二次以后运行时间就短多了。 经过这样的保养,你的电脑是不是恢复了刚买时候的速度?甚至更快了,呵呵!然后右键单击“我的电脑”,选择“属性”,再选择“性能”,看一下“系统资源”是多少,达到95%没有 ?