C語言程式設計
劉凱
第一章 基本文法規則
項目一:分支語句
【實訓目的】
1.掌握if語句的使用。
2.掌握switch……case語句的使用。
【實訓内容】
1.輸入三個整數x,y,z,請把這三個數由小到大輸出。
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交換x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交換x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交換z,y的值*/
printf("small to big: %d %d %d\n",x,y,z);
}
2.輸入一個百分制成績,輸出其對應的等級。(90-100為A,80-99為B,70-79為C,60-69為D,0-59為E)。
{ int x; char y;
scanf("%d",&x);
if(x>=90) y='A';
else if(x>=80) y='B';
else if(x>=70) y='C';
else if(x>=60) y='D';
else y='E';
printf("y=%c\n",y);
3.用swich~case語句實作第二題。
{ int a;
char y;
scanf("%d",&a);
switch(a/10)
{ case 10:
case 9:y='A';break;
case 8:y='B';break;
case 7:y='C';break;
case 6:y='D';break;
default:y='E';break;
項目二:循環語句
1.掌握while語句的使用。
2.掌握do while語句的使用。
3.掌握for語句的使用。
1.從鍵盤上輸入十個小于100的整數,輸出偶數的個數及偶數和。
main(){
int a,i,sum,num;
i=0;
while(iscanf("%d",&a);
if(a%2==0){
sum+=a;
num++;
i++;
printf("%d,%d",num,sum);
2.計算1至100之間的整數和。
int i,sum;
i=1;
do{
sum+=i;
}while(iprintf("%d",sum);
3.輸出九九表
#include
int main()
int x=1,y=1,sum;
int i;
while(x {
for(i=0;i {
sum=x*y;
y++;
printf("%3d ",sum);
}
printf("\n");
x++;
y=1;
return 0;
第二章 數組
項目三:一維數組與一維字元數組
1.掌握一維數組的定義、初始化及使用。
2.掌握一維字元數組的定義及使用。
1.将整型數組a中的十個整型數逆序存放并輸出。
{ int a[10],i,j,t;
for(i=0;iscanf("%d",&a[i]);
for(i=0,j=9;i
{ t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;iprintf("%4d",a[i]);
2.将一個字元串逆置後接到原串的後面。
#include "stdio.h"
{ char str[81];
int i,j;
gets(str);
while(str[i]!= '\0') i++;
j=i;
i--;
while(i>=0)
{ str[j]=str[i];
j++;
str[j]= '\0';
puts(str);
3.将字元數組a中的字元串複制到字元數組b。
{ char a[81],b[81];
int i=0;
gets(a);
while(*(a+i)!= '\0')
{ *(b+i)=*(a+i);
*(b+i)= '\0';
puts(b);
4.輸入一行字元,分别統計出其中英文字母、空格、數字和其它字元的個數。
{char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c='A'&&c letters++;
else if(c==' ')
space++;
else if(c>='0'&&c digit++;
else
others++;
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,
space,digit,others);
第三章 函數
項目四:函數的定義、調用與參數傳遞
1.掌握函數的定義;
2.掌握函數的調用;
3.掌握函數參數的傳遞方式。
1.通過調用函數計算任意三個整數的和。
int add(x,y,z)
int x,y,z;
{ return x+y+z;
{ int a,b,c;
printf("Input a,b&c:"); scanf("%d%d%d",&a,&b,&c);
printf("add=%d\n",add(a,b,c));
2.将3×5數組中的最大值與最小值互換位置。
exchangemm(int x[][5])
{ int i,j,max,min,hi,hj,li,lj,t;
max=min=x[0][0];hi=hj=li=lj=0;
for(i=0;ifor(j=0;jmax) { max=x[i][j];hi=i;hj=j;}
if(x[i][j] }
t=x[hi][hj]; x[hi][hj]=x[li][lj]; x[li][lj]=t;
{ int a[3][5],i,j;
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
exchangemm(a);
for(i=0;i{ for(j=0;jprintf("%d\t",a[i][j]);
printf("\n");