第一篇:C高級語言程序設計實驗內容
實驗一 C語言的運行環(huán)境和基礎知識
一、實驗目的
1.掌握c程序設計編程環(huán)境visual c++,掌握運行一個c程序設計的基本步驟,包括編輯、編譯、連接和運行。
2.熟練掌握Visual C++ 6.0環(huán)境運行的C程序上機步驟 3.數(shù)據(jù)類型、常量和變量的使用 4.表達式及運算符的應用 5.C程序的調試。
二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。
1、最簡單的C程序。(要求文件名:1_1.c)#include
printf(“Hello world!n”);return 0;}
2、一個具有致命錯誤的程序,請修改。(要求文件名:1_2.c)#include
printf(“i=%dn”,i);
return 0;}
3、一個具有警告語法錯的程序。(要求文件名:1_3.c)#include
s=i+j;printf(“s=%dn”,s);return 0;}
4、寫出一個程序測試整型、字符型數(shù)據(jù)表示,并輸出以驗證是否正確。(要求文件名:1_4.c)#include
int x=010,y=10,z=0x10;
/* 整型數(shù)據(jù)表示 */ char c1='M',c2='x4d',c3='115',c4=77,c;
/* 字符型數(shù)據(jù)表示 */
/* 整型數(shù)據(jù)的輸出 */ printf(“x=%o,y=%d,z=%xn”,x,y,z);
/* 數(shù)據(jù)以原進制輸出,注意是否有前導0或0x */ printf(“x=%d,y=%d,z=%dn”,x,y,z);
/* 數(shù)據(jù)以10進制輸出,換算到10進制,結果對嗎? */ /* 字符型數(shù)據(jù)的輸出 */ printf(“c1=%c,c2=%x,c3=%o,c4=%dn”,c1,c2,c3,c4);
/* 數(shù)據(jù)以原進制輸出,注意是否有前導0或0x ?*/ printf(“c1=%c,c2=%c,c3=%c,c4=%cn”,c1,c2,c3,c4);
/* 結果都是什么字符?,也就是說字符可以自由的表示成幾種形式? */ printf(“c1=%d,c2=%d,c3=%d,c4=%dn”,c1,c2,c3,c4);
/* 看看這些字符的10進制ASCII碼,哦,ASCII碼一樣,同一種字符 */
/* 字符型數(shù)據(jù)參與算術運算 */ c=c1+32;
/* 字符怎么參加了數(shù)學運算,哦,是字符對應的ASCII碼-整數(shù) /* 參與數(shù)學運算;結果還是一個整數(shù)-另外一個字符的ASCII碼 */ printf(“c=%c,c=%dn”,c,c);
/* 看看這個字符是什么?哇,'M'+32='m'了,看看ASCII碼表,原來如此!*/ return 0;} 參考結果: x=10,y=10,z=10 x=8,y=10,z=16 c1=M,c2=4d,c3=115,c4=77 c1=M,c2=M,c3=M,c4=M c1=77,c2=77,c3=77,c4=77 c=m,c=109
三、實驗報告要求
將題目:2和4的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。2
實驗二
順序結構程序設計
一、實驗目的:
1.掌握順序結構程序設計 2.掌握賦值語句的用法
3.熟練地進行數(shù)據(jù)輸入和輸出
二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。
1、已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮點),計算算術表達式(float)(a+b)/2+(int)x%(int)y的值。試編程上機驗證。(要求文件名:2_1.c)提示編程要點:
(1)先判斷結果值類型,可設置一個此類型的變量用于記錄表達式結果,本例用r存放結果;(2)程序先給幾個變量賦初值,然后將表達式賦值給變量r;(3)最后打印變量r的值就是表達式的值。參考程序:
#include
int a=2,b=3;float x=3.9,y=2.3;
float r;
r=(float)(a+b)/2+(int)x%(int)y;
printf(“%fn”,r);return 0;} 參考結果: 3.500000 思考:為什么是這個結果?
2、分析下面程序結果,并上機驗證。(要求文件名:2_2.c)#include
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“i=%d, j=%d, m=%d, n=%dn”,i,j,m,n);
return 0;} 參考結果:
i=9, j=11, m=9, n=10
3、用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。從鍵盤如何輸入?(要求文件名:2_3.c)#include
4、編程序,用getchar函數(shù)讀入兩個字符給c1、c2,然后分別用 putchar函數(shù)和 printf函數(shù)輸出這兩個字符。(要求文件名:2_4.c)參考程序:
#include
三、實驗報告要求
將題目:1和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。
實驗三
選擇結構程序設計
一、實驗目的
1.2.3.4.了解C語句表示邏輯量的方法(以0代表“假”以1代表“真”);
學會正確使用邏輯運算符和邏輯表達式;
熟練掌握if語句和switch語句;
熟練掌握switch語句中break語句的作用。
二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。
(1)掌握各種格式轉換符的正確使用方法,輸出結果。(要求文件名:3_1.c)#include
(2)1.從鍵盤任意輸入一個年號,判斷它是否是閏年。若是閏年,輸出“Yes”,否則輸出“No”。已知符合下列條件之一者是閏年:(1)能被4整除,但不能被100整除;(2)能被400整除。(要求文件名:3_2.c)參考程序:
#include
int year, flag;printf(“Enter year:”);scanf(“%d”, &year);if(year%4==0&&year%100!=0 || year%400==0)
{
flag = 1;
} else
{
flag = 0;
} if(flag)
{
printf(“Yesn”);
} else
{
printf(“Non”);} return 0;}(3)編程序,并給出程序的運行結果,注意思考case中break的用法以及為什么是這樣的結果?(要求文件名:3_3.c)參考程序:
#include
int x=2,y=1,a=1,b=2;switch(x){ case 2:
switch(y)
{
case 1:a++;
case 2:b++;break;
}
case 3:a++;b++;break;} printf(“%d %dn”,a,b);return 0;}(4)編程序:輸入4個整數(shù),要求按由小到大的順序輸出。(要求文件名:3_4.c)參考程序:
#include
int t,a,b,c,d;scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);printf(“a=%d,b=%d,c=%d,d=%dn”,a,b,c,d);if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(a>d){t=a;a=d;d=t;} if(b>c){t=b;b=c;c=t;} if(b>d){t=b;b=d;d=t;} if(c>d){t=c;c=d;d=t;} printf(“%d,%d,%d,%dn”,a,b,c,d);return 0;}
三、實驗報告要求
將題目:2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。
實驗四 循環(huán)結構程序設計
一、實驗目的
1.2.3.4.5.熟練使用while、for語句實現(xiàn)循環(huán)程序設計
理解循環(huán)條件和循環(huán)體,以及while、for語句的相同及不同之處 掌握嵌套循環(huán)程序設計
熟練掌握下拉菜單Debug的程序調試方法 掌握break和continue的用法
二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。
(1)輸入兩個正整數(shù)m和n,求它們的最大公約數(shù)和最小公倍數(shù)。(要求文件名:4_1.c)參考程序:
#include
m=x;else
m=y;for(i=1;i<=m;i++){
if((x%i==0)&&(y%i==0))
max=i;} printf(“%dn”,max);printf(“%dn”,x*y/max);return 0;}(2)從鍵盤輸入一個 int 類型的正整數(shù),輸出它的所有因子。如輸入6,輸出1,2,3;輸入20,輸出1,2,4,5,10。(要求文件名:4_2.c)參考程序:
#include printf(“%dn”,i);} return 0;}(3)輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其他字符的個數(shù)。(要求文件名:4_3.c)參考程序: #include if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++; else if(c>='0'&&c<='9') digit++; else if(c==' ') space++; else other++;} printf(“%d,%d,%d,%dn”,letter,digit,space,other);return 0;}(4)編程計算1?11111??????的值。(要求文件名:4_4.c)23499100參考程序: #include int sign = 1;double sum = 1;double deno = 2;double term = 1;while(deno<=100){ sign =(-1)*sign; term = sign*(1/deno); sum = sum+term; deno++;} printf(“%lfn”,sum);return 0;} 三、實驗報告要求 將題目:3和4的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗五 數(shù)組 一、實驗目的 1.掌握一維、二維數(shù)組的定義、引用、應用 2.掌握字符數(shù)組的定義、引用、應用 3.掌握字符串處理函數(shù) 二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。 (1)給出下面程序的結果,思考為什么?(要求文件名:5_1.c)#include char a[]=“Chinaren”,b[]=“Tiananmen”;char *p1,*p2; int k=0;p1=a; p2=b;for(k=0;k<10;k++) if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k));printf(“n”);return 0;}(2)有一個3×4的矩陣,要求輸出其中值最大的元素的值,以及它的行號和列號。(要求文件名:5_2.c)參考程序: #define M 3 #define N 4 #include int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=a[0][0]; for(i=0;i for(j=0;j if(a[i][j]>max) { max= a[i][j]; r=i; c=j; } printf(“max=%d , row =%d , colum=%d n”,max , r, c); return 0;}(3)編程序用于讀入10個字符串,然后找出最大的字符串并打印。(要求文件名:5_3.c)參考程序: #include char str[10][80],maxstring[80]; int i;printf(“Enter ten strings:n”);for(i=0;i<10;i++) { scanf(“%s”, str[i]);} strcpy(maxstring, str[0]); for(i=1;i<10;i++) { if(strcmp(str[i],maxstring)>0) { strcpy(maxstring,str[i]); } } printf(“The max string is:%sn”,maxstring);}(4)給出下面程序的運行結果,思考為什么?(要求文件名:5_4.c)#include int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};int i,j,s=0;for(i=0;i<4;i++){ for(j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } } printf(“%dn”,s);return 0;}(5)測試二維數(shù)組的各個地址值,結果是什么,思考原因。(要求文件名:5_5.c)#include int a[M][N];printf(“%xn”,a);printf(“%xn”,a[0]);for(int i=0;i printf(“%x,”,&a[i][j]); return 0;} 三、實驗報告要求 將題目:2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗六 函數(shù) 一、實驗目的 1.掌握C語言函數(shù)的定義方法、函數(shù)的聲明及函數(shù)的調用方法。 2.了解主調函數(shù)和被調函數(shù)之間的參數(shù)傳遞方式。 二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。 (1)給出下面程序的結果,思考為什么?(要求文件名:6_1.c)#include #include printf(“%d is prime!”,number);else printf(“%d is not!”,number);return 0;} int prime(int number)/*此函數(shù)用于判別素數(shù)*/ { int flag=1,n;for(n=2;n if(number%n==0) flag=0;return(flag);}(3)求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。寫一個函數(shù)求最大公約數(shù)。(要求文件名:6_3.c)參考程序: #include max=i;} return(max);}(4)寫一函數(shù),輸入一個十六進制數(shù),輸出相應的十進制數(shù)。(要求文件名:6_4.c)參考程序: #include if(shu[i]>=48&&shu[i]<=57) sum=sum+(shu[i]-48)*pow(16,k-i); else if(shu[i]>=65&&shu[i]<=70) sum=sum+(shu[i]-55)*pow(16,k-i); else if(shu[i]>=97&&shu[i]<=102) sum=sum+(shu[i]-87)*pow(16,k-i); else { printf(“error!n”); break; } return sum;} int main(){ char str[100];long s;gets(str);s=change(str);if(!s) printf(“The number is not oxn”);else printf(“change:%ldn”,s);return 0;} 三、實驗報告要求 將題目:3和4的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗七 指針 一、實驗目的 1.掌握指針變量的定義與引用。 2.熟練使用函數(shù)指針、數(shù)組指針、字符串指針編寫應用程序。 二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。 (1)輸入三個整數(shù),按由小到大的順序輸出,然后將程序改為:輸入三個字符串,按由小到大順序輸出。參考程序:(輸入三個整數(shù),按由小到大的順序輸出)(要求文件名:7_0.c)#include #include int x,a[100],*p,i;p=a;scanf(“%d”,&x);for(i=0;i scanf(“%d”,p++);p=a;printf(“n”);maopao(p,x);printf(“the sorted numbers:n”);p=a;for(i=0;i printf(“%dt”,*p); return 0;} void maopao(int *p,int x){ int i,j,temp;for(i=0;i for(j=0;j if(*(p+j)>*(p+j+1)) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } }(3)利用函數(shù)和指針將給定字母字符串的第一個字母變成大寫字母,其它字母變成小寫字母。在main函數(shù)中接收字符串的輸入,改變后的字符串的輸出也在main函數(shù)中實現(xiàn)。(要求文件名:7_3.c)參考程序: #include *s-=32;s++; } for(i=0;i *s+=32; 三、實驗報告要求 將題目2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗八 結構體和共用體 一、實驗目的 1.掌握結構體類型和結構體變量的定義。 2.掌握結構類型變量的定義和使用。 3.掌握鏈表的概念,初步學會對鏈表進行操作。 二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。 (1)給出下面程序的運行結果,思考為什么?(要求文件名:8_1.c)#include char num[10]; float score[3];}; int main(){ struct STU s[3]={{“1122301”,90,95,85}, {“1122302”,80,90,75}, {“1122303”,98,92,85}}, *p=s; int i; float sum = 0; for(i=0;i<3;i++){ sum = sum + p->score[i]; } printf(“%6.2fn”,sum); return 0;}(2)有10個學生,每個學生的數(shù)據(jù)包括學號,姓名,三門課的成績,從鍵盤輸入十個學生的數(shù)據(jù),要求打印出每個學生的平均成績,以及最高分的學生的數(shù)據(jù)(包括學號,姓名,三門課的成績,平均分數(shù))。(要求文件名:8_2.c)#include char num[6]; char name[8]; float score[3]; float avr;} stu[N]; int main(){ int i,j,maxi; float sum,max,average; for(i=0;i { printf(“input scores of student %d:n”,i+1); printf(“NO.:”); scanf(“%s”,stu[i].num); printf(“name:”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d:”,j+1); scanf(“%f”,&stu[i].score[j]); } } average=0; max=0; maxi=0; for(i=0;i { sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max) { max=sum; maxi=i; } } average/=N; printf(“ NO.name score1 score2 score3 averagen”); for(i=0;i for(j=0;j<3;j++) printf(“%9.2f”,stu[i].score[j]); printf(“ %8.2fn”,stu[i].avr); } printf(“average=%5.2fn”,average); printf(“The highest score is : student %s,%sn”,stu[maxi].num,stu[maxi].name);printf(“his scores are:%6.2f,%6.2f,%6.2f,average:%5.2f.n”,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);return 0;}(3)建立一個鏈表,每個結點包括:學號,姓名,性別,年齡。輸入一個年齡,如果鏈表中的結點所包含的年齡等于此年齡,則將此結點刪去。(要求文件名:8_3.c) #include char num[6];char name[8];char sex[2];int age;struct student *next;} stu[10]; int main(){ struct student *p,*pt,*head;int i,length,iage,flag=1;int find=0; //找到待刪除元素 find=1,否則find=0 while(flag==1){ printf(“input length of list(<10):”); scanf(“%d”,&length); if(length<10) flag=0;} //建立鏈表 for(i=0;i p=(struct student *)malloc(LEN); if(i==0) head=pt=p; else pt->next=p; pt=p; printf(“NO.:”); scanf(“%s”,p->num); printf(“name:”); scanf(“%s”,p->name); printf(“sex:”); scanf(“%s”,p->sex); printf(“age:”); scanf(“%d”,&p->age); } p->next=NULL; p=head;printf(“n NO.name sex agen”); //顯示 while(p!=NULL){ printf(“%4s%8s%6s%6dn”,p->num,p->name,p->sex,p->age); p=p->next;} // 刪除 printf(“input age:”); //輸入待刪年齡 scanf(“%d”,&iage);pt=head;p=pt; if(pt->age==iage) //鏈頭是待刪元素 { p=pt->next; head=pt=p; find=1; } else //鏈頭不是待刪元素 pt=pt->next; while(pt!=NULL){ if(pt->age==iage) { p->next=pt->next; find=1; } else // 中間結點不是待刪元素 p=pt; pt=pt->next; } if(!find) printf(“ not found %d.”,iage); p=head; printf(“n NO.name sex agen”);//顯示結果 while(p!=NULL){ printf(“%4s%8s”,p->num,p->name); printf(“%6s%6dn”,p->sex,p->age); p=p->next; } return 0;} 三、實驗報告要求 將題目3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗九 文件操作 一、實驗目的 1.掌握文件和文件指針的概念以及文件的定義方法。 2.了解文件打開和關閉的概念和方法。 3.掌握有關文件的函數(shù)。 二、實驗內容和源程序清單、測試數(shù)據(jù)、結果。 (1)對data.dat文件寫入100條記錄。(要求文件名:8_1.c) #include int i; float x; fp=fopen(“c:data.dat”,“w”); for(i=1;i<=100;i++) { scanf(“%f”,&x); fprintf(fp,“%fn”,x); } fclose(fp); return 0;} (2)設有一文件cj.dat存放了50個人的成績(英語、計算機、數(shù)學),存放格式為:每人一行,成績間由逗號分隔。計算三門課平均成績,統(tǒng)計個人平均成績大于或等于90分的學生人數(shù)。(要求文件名:8_2.c) #include int num=0; float x , y , z , s1 , s2 , s3; fp=fopen(“c:cj.dat”,“r”); while(!feof(fp)) { fscanf(fp,“%f,%f,%f”,&x,&y,&z); s1=s1+x; s2=s2+y; s3=s3+z; if((x+y+z)/3>=90) num=num+1; } printf(“分數(shù)高于90的人數(shù)為:%dn”,num); fclose(fp); return 0;} (3)統(tǒng)計上題cj.dat文件中每個學生的總成績,并將原有數(shù)據(jù)和計算出的總分數(shù)存放在磁盤文件“stud”中。(要求文件名:8_3.c) #include “stdio.h” int main(){ FILE *fp1,*fp2; float x,y,z; fp1=fopen(“c:cj.dat”,“r”); fp2=fopen(“c:stud”,“w”); } while(!feof(fp1)){ fscanf(fp1,“%f,%f,%f”,&x,&y,&z); printf(“%f,%f,%f,%fn”,x,y,z,x+y+z); fprintf(fp2,“%f,%f,%f,%fn”,x,y,z,x+y+z);} fclose(fp1);fclose(fp2);return 0; 三、實驗報告要求 將題目1、2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 《高級語言程序設計C》實驗教學大綱 課程編號:1021742 總學時:56學時 適用專業(yè):非計算機理工科各專業(yè) 總實驗學時:24 實驗次數(shù): 12 次 應開實驗個數(shù):13 已開實驗個數(shù):13 實驗開出率:100% 實驗一 熟悉C 程序的運行環(huán)境 一、學時:2 二、實驗類型:演示、驗證 三、實驗目的和主要內容: 1.了解計算機系統(tǒng)對高級語言的基本操作方法 2.熟悉和了解Turbo C 系統(tǒng)軟件的使用和操作 3.能進行簡單的C語言程序錄入、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.熟悉開機操作,使用單機或計算機上網(wǎng)。 2.進入 Turbo C 系統(tǒng)。 3.熟悉Turbo C 系統(tǒng)各菜單命令的使用和操作 4.模仿簡單的源程序,編寫自己的小程序,并能運行這些程序。 5.錄入、調試、編譯和運行C語言程序 實驗二 數(shù)據(jù)類型、表達式及輸入輸出函數(shù)實驗 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1. 熟悉和了解C語言的數(shù)據(jù)類型 2. 使用C語言的有關算術運算符,以及包含這些運算符的表達式 3.進行簡單的C語言輸入輸出函數(shù)的使用,格式控制符的涵意,簡單C程序的設計、調 試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.編寫簡單的有輸入輸出的C程序,并進行該程序的運行、調試、編譯。 3.編寫一個輸入三條邊,計算三角形面積的程序。 4.編寫程序,計算a+b×c÷d-d3,其中:a,b為整型變量,c,d為實型變量。 5.編寫一個有關數(shù)據(jù)計算程序,驗證運算符及表達式的結果。 6.可從布置的作業(yè)中,再任選一編程題,進行上機。 實驗三 順序程序結構程序設計 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.進一步掌握C程序的編輯、編譯、連接和運行的過程。2.熟悉順序結構的程序設計方法。3.熟練使用C的各種表達式。 4.熟練掌握輸入、輸出函數(shù)的使用。 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.輸入x,y,編寫程序求z=x+|y|的值。實驗步驟與要求: (1)程序中用scanf函數(shù)輸入x和y的值,請分析以下兩個語句 scanf(“%f%f”,x,y);scanf(“%f%f”,&x,&y); 哪一個是正確的,分別運行之,分析程序運行結果。 (2)如果scanf函數(shù)改為scanf(“%f,%f”,&x,&y);應該怎樣輸入數(shù)據(jù)。2.編寫輸入三角形的三邊長a、b、c,求三角形面積area的程序。實驗步驟與要求: (1)輸入前要加提示語句。 (2)輸出結果前要有必要的文字說明。(3)輸入一組數(shù)據(jù)3,4,5,觀察運算結果。 (4)輸入另外一組數(shù)據(jù)3,4,8,觀察運算結果,分析這個運算結果是否有效。 實驗四 分支控制語句實驗 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.熟悉和了解C語言系統(tǒng)分支語句的使用和操作 2.進行C語言分支控制語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行分支控制源程序的設計,并進行該程序的運行、調試、編譯。 3.編輯一個分支控制程序,求:任意輸入數(shù)(n>2)是否為素數(shù)。 4.編輯一個分支控制程序,求:任意輸入3個數(shù),求其最大數(shù)。 實驗五 循環(huán)語句實驗 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.熟悉和了解C語言循環(huán)語句的使用和操作 2.進行C語言循環(huán)語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行循環(huán)源程序的設計,并進行該程序的運行、調試、編譯。 3.編輯一個循環(huán)程序,求:1到100的和及平方和。 4.編輯一個循環(huán)程序,求:任意輸入10個數(shù),求其最大數(shù)。 5.可從布置的作業(yè)中,再任選一編程題,進行上機。 實驗六 數(shù)組實驗 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.熟悉和了解C語言數(shù)組程序的設計方法 2.學會使用C語言數(shù)組進行程序設計 3.進行C語言數(shù)組語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行數(shù)組的定義和使用方法,即:一維和二維數(shù)組的應用。 3.進行數(shù)組語句源程序的設計,并進行該程序的運行、調試、編譯。 4.編輯數(shù)組應用程序: (1)任意輸入20個數(shù)在一維數(shù)組a中,求20個數(shù)的平均值。 (2)定義2個二維數(shù)組A[2][3]、B[2][3],分別對這2個數(shù)組輸入數(shù)據(jù),求A+B和A-B的值。 (3)用字符數(shù)組存儲任意輸入10字符,求其最大字符。 (4)編輯一個有5個學生,考 3門功課。求出每一個學生的總分及平均分,統(tǒng)計平均成績低于 60 分的學生人數(shù)。 5.可從布置的作業(yè)中,再任選一編程題,進行上機。 實驗七 有關數(shù)組的程序設計 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.掌握有關數(shù)組和字符串的程序設計方法。 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 已知一組數(shù)據(jù)如下:6,3,42,23,35,71,98,67,56,38。編寫程序,把它們按 從小到大的次序排列起來。求2行3列矩陣A 的轉置矩陣。 實驗八 函數(shù)實驗 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.熟悉和了解C語言函數(shù)程序的設計方法。 2.學會使用C語言函數(shù)的定義及調用,并進行程序編制。 3.進行C語言函數(shù)語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行函數(shù)的定義及調用。 3.進行函數(shù)語句源程序的設計,并進行該程序的運行、調試、編譯。 (1)任意輸入一個數(shù)n,用兩個子函數(shù)實現(xiàn)1+2+3?n以及n!,在主函數(shù)中輸出該結果。 (2)在主函數(shù)中定義二維數(shù)組A[3][4]、B[4],用子函數(shù)對數(shù)組A[3][4]每一行求和,其值放在數(shù)組B[4]中,在主函數(shù)中輸出該值。 (3)用字符數(shù)組存儲任意輸入的10字符,在子函數(shù)中把該字符數(shù)組的小寫字母轉換成大寫字母。 4.可從布置的作業(yè)中,再任選一編程題,進行上機。 實驗九 常用指針實驗 (一)一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.熟悉和了解C語言指針一般設計方法 2.學會使用C語言指針進行程序設計 3.進行簡單C語言指針語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行C語言指針語句的定義和使用方法。 3.進行C語言指針語句源程序的設計,并進行該程序的運行、調試、編譯。 4.編輯一個找出字串 str1中 str2出現(xiàn)的位置,用指針編程實現(xiàn)。 5.可從布置的作業(yè)中,再任選一編程題,進行上機。 實驗十 復雜指針實驗 (二)一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.進一步熟悉和了解C語言指針語句設計方法 2.進行C語言中的指針與函數(shù)、指針數(shù)組、多級指針語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行C語言指針與函數(shù)、指針數(shù)組、多級指針語句的定義和使用方法。 3.進行C語言該指針語句源程序的設計,并進行該程序的運行、調試、編譯。 4.編輯一個在主程序里輸入十個不等長的字串,調用自編的函數(shù)把它們按升序排列,用指針編程實現(xiàn)。 5.可從布置的作業(yè)中,再任選一題編程題,進行上機。 實驗十一 結構類型實驗 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.熟悉和了解C語言結構、聯(lián)合數(shù)據(jù)的定義及設計方法 2.學會使用C語言結構、聯(lián)合數(shù)據(jù)類型進行程序設計 3.進行C語言結構、聯(lián)合語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行C語言結構、聯(lián)合數(shù)據(jù)類型的定義和使用。 3.進行C語言結構、聯(lián)合數(shù)據(jù)類型源程序的設計,并進行該程序的運行、調試、編譯。 4.編輯一個能處理學生綜合信息的程序(包括:學號、姓名、班級、語文成績、數(shù)學成績、英語成績等)。 實驗十二 有關結構的程序設計 一、學時:2(課后完成或選作) 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.掌握結構體類型和結構體變量的定義。2.掌握結構類型變量的定義和使用; 3.掌握鏈表的概念,初步學會對鏈表進行操作; 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.有五個學生,每個學生的數(shù)據(jù)包括學號,姓名,三門課的成績,從鍵盤輸入五個學生的數(shù)據(jù),要求打印出每個學生的平均成績,以及最高分的學生的數(shù)據(jù)(包括學號,姓名,三門課的成績,平均分數(shù))。實驗步驟與要求: 用一個函數(shù)輸入五個學生的數(shù)據(jù);用一個函數(shù)求總平均分;用函數(shù)找出最高分學生數(shù)據(jù),總平均分和最高分的學生的數(shù)據(jù)都在主函數(shù)中輸出。 2.三個人圍成一圈,從第一個人開始順序報號1,2,3。凡報到“3”者退出圈子,找出最后流在圈子中的人原來的序號。 3.建立一個鏈表,每個結點包括:學號,姓名,性別,年齡。輸入一個年齡,如果鏈表中的結點所包含的年齡等于此年齡,則將此結點刪去。 實驗十三 文件實驗 一、學時:2 二、實驗類型:驗證、設計 三、實驗目的和主要內容: 1.熟悉和了解C語言文件系統(tǒng)的組成及設計方法。 2.學會使用C語言文件系統(tǒng)進行程序設計 3.進行C語言文件語句的設計、調試、編譯和運行 四、需用儀器、設備: 1.硬件環(huán)境 PC-486以上微機 32M以上的內存 VGA顯卡 2.軟件環(huán)境 西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng) Turbo C(2.0版) 五、實驗方法及步驟: 1.進入 Turbo C 系統(tǒng)。 2.進行C語言文件系統(tǒng)類型的定義和使用。 3.進行C語言文件系統(tǒng)類型源程序的設計,并進行該程序的運行、調試、編譯。 4.編輯程序。 (1)用數(shù)組存儲10個數(shù)據(jù),并存儲在“date.dat”文件中 (2)對存儲在“date.dat”文件中的數(shù)據(jù)讀入到一個數(shù)組中,求出總和及最大值,并把它存儲在“dsum.dat”文件中 信息技術系《高級語言程序設計》實驗教學大綱 一、教材名稱:< 二、課程總學時:108學時 [理論: 72 學時;實驗與上機:36學時] 三、適用專業(yè)和開課學期:軟件技術專業(yè),第2學期。 四、實驗的目的與任務: 《C程序設計》是一門實踐性很強的課程。通過實驗使學生加深對課堂講授的概念、語法、算法、編程技術的理解;熟悉C程序設計的開發(fā)環(huán)境;掌握程序設計和調試的基本技能。并通過實踐激發(fā)學生進一步學習的積極性,培養(yǎng)學生的學習興趣和創(chuàng)新思維。通過8個實驗,使學生經(jīng)過一定數(shù)量的上機訓練,了解和掌握C程序設計的環(huán)境、程序的數(shù)據(jù)表示、程序的執(zhí)行流程控制、程序的整體結構等C程序設計的基本概念和應用技術。 五、主要儀器設備及臺(套)數(shù) 安裝Windowsxp,TC2.0等軟件的計算機,每生一臺。 六、主要實驗教材(指導書)及參考用書: 譚浩強主編,《C程序設計題解與上機指導》,清華大學出版社。 七、成績考核方式及評分標準 實驗占課程總課時1/3,每項實驗按該實驗說明要求規(guī)定的評分標準積分,學期末合計的實驗成績占課程總成績的18%。 八、實驗開出率:100% 九、實驗項目與要求 實驗一:C程序的運行環(huán)境和運行一個C程序的方法(2學時) 實驗性質:驗證性實驗 一、實驗目的 1.了解所用的計算機系統(tǒng)的基本操作方法,學會獨立使用該系統(tǒng)。2.了解在該系統(tǒng)上如何編輯、編譯、連接和運行一個C程序。3.通過運行簡單的C程序,初步了解C源程序的特點。 二、實驗內容 1.調用編輯程序,輸入教材第一章例1.1程序,并進行編譯和運行。應了解所用的系統(tǒng)是用什么命令進行編譯和連接運行的。編譯和連接后所得到的目標程序的后綴是什么形式的? 2.輸入并運行教材第一章中例1.2。 3.輸入并運行教材第一章中例1.3,了解如何在運行時向程序變量輸入數(shù)據(jù)。 實驗二 數(shù)據(jù)類型、運算符和表達式(2學時) 實驗性質:驗證性實驗 一、實驗目的 1.掌握C語言數(shù)據(jù)類型,熟悉如何定義一個整型、字符型、實型變量,以及對它們賦值的方法,了解以上類型數(shù)據(jù)輸出時所用格式轉換符。 2.學會使用C的有關算術運算符,以及包含這些運算符的表達式,特別是自加(++)和自減(--)運算符的使用。 3.進一步熟悉C程序的編輯、編譯、連接和運行的過程。 二、實驗內容 1.輸入并運行教材第三章例3.6.即: #include printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基礎上 ①將第二行改為: int c1,c2;再使之運行,分析結果。②再將第三行、第四行改為: c1=300;c2=400;再使之運行,分析其運行結果。 2.輸入并運行教材第三章習題3.6,在上機前先用人工分析程序寫出應得結果,上機后將二者對照。 3.輸入并運行習題3.10。即: #include printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改為: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);} 實驗三 最簡單的C程序設計(2學時) 實驗性質:驗證性實驗 一、實驗目的 1.掌握C語言中使用最多的一種語句—賦值語句的使用。2.掌握數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉換符。 二、實驗內容 1.輸入并運行以下程序: #include void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基礎上,做以下改動: ① 將程序第8-13行改為: a=61;b=62; c1=a;c2=b; f=3157.890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; 運行程序,分析結果。 ② 在①的基礎上將printf語句改為: printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e); printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 運行程序。 2.編寫程序,用getchar函數(shù)讀入兩個字符c1、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個字符。 上機運行程序,比較用printf和putchar函數(shù)輸出字符的特點。 實驗四 選擇結構程序設計(2學時) 實驗性質:設計性實驗 一、實驗目的 1.了解C語言表示邏輯量的方法(以0代表“假”,以1代表“真”); 2.學會正確使用邏輯運算符和邏輯表達式; 3.熟練掌握if語句和switch語句。 二、實驗內容 先編程序,解決以下問題,然后上機調試運行程序。1.有一個函數(shù) ?x?y??2x?1?3x?11?x?11?x?10 x?10用scanf函數(shù)輸入x的值(分別為x<1、1~ 10、≥10三種情況),求y值。2.給出一個百分制成績,要求輸出成績等級‘A’,‘B’,‘C’,‘D’,‘E’。90分以上為‘A’,80~89分為‘B’,70~79分為‘C’,60~69分為‘D’,60分以下為‘E’。 實驗五 循環(huán)控制(4學時) 實驗性質:設計性實驗 一、實驗目的 1.熟悉用while語句,do-while語句和for語句實現(xiàn)循環(huán)的方法。2.掌握在程序設計中用循環(huán)的方法實現(xiàn)各種算法(如窮舉、迭代、遞推等)。 二、實驗內容 編程序并上機調試運行。 1.輸入兩個正整數(shù),求其中最大公約數(shù)和最小公倍數(shù)。2.用牛頓迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。 實驗六 數(shù)組(4學時) 實驗性質:設計性實驗 一、實驗目的 1.掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法; 2.掌握字符數(shù)組和字符串函數(shù)的使用。3.掌握與數(shù)組有關的算法(特別是排序算法)。 二、實驗內容 編程序并上機調試運行。 1.用選擇法對10個整數(shù)排序。10個整數(shù)用scanf函數(shù)輸入。2.將兩個字符串連接起來,不要用strcat函數(shù)。實驗七 函數(shù)(4學時) 實驗性質:設計性實驗 一、實驗目的 1.掌握定義函數(shù)的方法; 2.掌握函數(shù)實參與形參的對應關系,以及“值傳遞”的方式; 3.掌握函數(shù)的嵌套調用和遞歸調用的方法; 4.掌握全局變量和局部變量,動態(tài)變量和靜態(tài)變量的概念和使用方法。 二、實驗內容 編程序并上機調試運行。 1.寫一個判斷素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否是素數(shù)的信息。2.求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù),用一個函數(shù)求最大公約數(shù)。用另一函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。 (1)用全局變量的方法。將兩個整數(shù)的最大公約數(shù)、最小公倍數(shù)都設為全局變量。 (2)不用全局變量,兩個整數(shù)在主函數(shù)中輸入,并傳送給函數(shù)1,求出的最大公約數(shù)返回主函數(shù),然后再與兩個整數(shù)一起作為實參傳遞給函數(shù)2,以求出最小公倍數(shù),返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。 實驗八 預處理命令(2學時) 實驗性質:設計性實驗 一、實驗目的 1.掌握宏定義的方法; 2.掌握文件包含處理方法; 3.掌握條件編譯的方法。 二、實驗內容 編程序并上機調試運行。 1.定義一個帶參數(shù)的宏,使兩個參數(shù)的值互換。在主函數(shù)中輸入兩個數(shù)作為使用宏的實參,輸出已交換后的兩個值。 說明:在程序主函數(shù)使用宏時只能用兩個實參,如SWAP(a,b),不能用三個參數(shù)。2.用條件編譯方法實現(xiàn)以下功能: 輸入一行電報文字,可以任選兩種輸出,一為原文輸出;一為將字母變成其下字母(如‘a(chǎn)’變成‘b’,?,‘z’變成‘a(chǎn)’。其它字符不變)。用#define命令來控制是否要譯成密碼。例如: #define CHANGE 1 則輸出密碼。若 #define CHANGE 0 則不譯成密碼,按原碼輸出。用條件編譯方法來處理。 實驗九 指針(4學時) 實驗性質:設計性實驗 一、實驗目的 1.掌握指針的概念,會定義和使用指針變量; 2.學會使用數(shù)組的指針和指向數(shù)組的指針變量; 3.學會使用字符串的指針和指向字符串的指針變量; 4.學會使用指向函數(shù)的指針變量; 二、實驗內容 編程序并上機調試運行程序(都要求用指針處理)。1.輸入三個整數(shù),按由小到大的順序輸出。 2.將一個3*3的矩陣轉置,用一函數(shù)實現(xiàn)之。在主函數(shù)中用scanf函數(shù)輸入以下矩陣元素: ?1? ?7??1339155??11 ?19??將數(shù)組名作為函數(shù)實參。函數(shù)調用后在主函數(shù)中輸出已轉置的矩陣。3.用一個函數(shù)實現(xiàn)兩個字符串的比較,即自己寫一個strcmp函數(shù): strcmp(s1,s2)如果s1=s2,則函數(shù)返回值為0;如果s1≠s2,返回它們二者第一個不同字符的ASCII碼差值(如“BOY”與“BAD”,第二個字母不同,“O”與“A”之差為79-65=14);如果s1>s2,則輸出正值;如s1 兩個字符串s1,s2由main函數(shù)輸入,strcmp函數(shù)的返回值也在main函數(shù)輸出。 實驗十 結構體和共用體(4學時) 實驗性質:設計性實驗 一、實驗目的 1.掌握結構體類型變量的定義和使用; 2.掌握結構體類型數(shù)組的概念和應用; 3.掌握共用體的概念與使用。 二、實驗內容 編程序,然后上機調試運行。 1.有5個學生,每個學生的數(shù)據(jù)包括學號、姓名、三門課的成績,從鍵盤輸入5個學生數(shù)據(jù),要求打印出三門課總平均成績,以及最高分的學生的數(shù)據(jù)(包括學號、姓名、三門課的成績、平均分數(shù))。 要求用一個input函數(shù)輸入5個學生數(shù)據(jù);用一個average函數(shù)求總平均分;用max函數(shù)找出最高分學生數(shù)據(jù);總平均分和最高分的學生的數(shù)據(jù)都在主函數(shù)中輸出。 2.輸入和運行以下程序: #include union data {int i[2]; float a; long b; char c[4]; }; void main(){union data u; scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 輸入兩個整數(shù)10000、20000給u.i[0]和u.i[1]。分析運行結果。 然后將scanf語句改為: scanf(“%ld”,&u.b); 輸入60000給b。分析運行結果。 實驗十一 位運算(1學時) 實驗性質:設計性實驗 一、實驗目的 1.掌握位運算的概念和方法,學會使用位運算符; 2.學會通過位運算實現(xiàn)對某些位的操作。 二、實驗內容 編寫程序,上機調試并運行。 1.設計一個函數(shù),使給出一個數(shù)的原碼,能得到該數(shù)的補碼,用八進制形式輸入和輸出。 實驗十二 文件(1學時) 實驗性質:設計性實驗 一、實驗目的 1.掌握文件以及緩沖文件系統(tǒng)、文件指針的概念; 2.學會使用文件打開、關閉、讀、寫等文件操作函數(shù)。3.學會用緩沖文件系統(tǒng)對文件進行簡單的操作。 二、實驗內容 1.從鍵盤輸入一個字符,將其中的小寫字母全部轉換成大寫字母,然后輸出到一個磁盤文件“test”中保存。輸入的字符以“!”結束。實驗十三 學生成績管理(4學時) 實驗性質:綜合性設計性實驗 一、實驗目的 1.綜合運用C程序設計知識,解決實際問題。 二、實驗內容 1.有5個學生,每個學生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學生號、姓名、三門課成績),計算出平均成績,將原有數(shù)據(jù)和計算出的平均分數(shù)存放在磁盤文件“stud”中。 2.將上題“stud”文件中的學生數(shù)據(jù),按平均分進行排序處理,將已排序的學生數(shù)據(jù)存入一個新文件“stu-sort”中。 3.將上題已排序的學生成績文件進行插入處理。插入一個學生的三門課成績。程序先計算新插入學生的平均成績,然后將它按成績高低順序插入,插入后建立一個新文件。 學生的原有數(shù)據(jù)為: 91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的學生數(shù)據(jù)為: 91108 Xin 90,95,60 制 訂:程世輝 教研室:軟件教研室 執(zhí)筆人:程世輝 審定人: 二00七年八月 高級語言程序設計(VB)實驗評分方法及注意事項 1.高級語言程序設計(VB)綜合性實驗包括預習和實驗兩部分,相應提交預習報告和實驗報告。實驗報告成績以百分制給出。預習報告成績占實驗成績的20分,實驗報告成績占實驗成績的80分。2.預習報告主要包括: (1)界面設計和屬性設置(5分) 包括所需對象的名稱、數(shù)量、在窗體上的布局、屬性名和屬性值等。屬性設置情況要求用表格進行填寫。(2)預編程序代碼(15分) 程序流程圖不作硬性要求,如有且正確可在5分以內適當加分。預編程序代碼必須手寫。 3.實驗報告主要包括: (1)實驗目的(已在實驗報告模板中給出)(2)實驗內容(已在實驗報告模板中給出)(3)實驗要求(已在實驗報告模板中給出)(4)界面設計和屬性設置(5分)(5)源程序代碼(60分) (6)調試和運行結果(要求取截圖)(5分)(7)實驗中存在的問題(5分)(8)體會和思考(5分) 以上內容要求在A4紙上打印。 5.做實驗項目之前,要求學生提前預習,做好實驗前的準備工作。 6.學生做完實驗后,要按實驗要求寫出實驗報告(連同預習報告一并打印左側裝訂),交班長并由班長收齊后按學號排好序交給實驗指導教師。 《高級語言程序設計》教學大綱(Visual FoxPro) 課程編號:030202 總學時:54學時(含上機24學時) 適用專業(yè):全院管理類所有本、??茖I(yè) 一、教 學 內 容 1、數(shù)據(jù)庫基本知識 ①數(shù)據(jù)庫的特點; ②數(shù)據(jù)庫系統(tǒng)分代; ③數(shù)據(jù)庫系統(tǒng)的分類; ④Visual FoxPro文件的主要技術指標; ○5 Visual FoxPro的界面和工作方式 2、數(shù)據(jù)庫的基本操作 ①數(shù)據(jù)庫文件的建立,CREATE、APPEND、LIST、DISPLAY; ② Visual FoxPro的命令工資方式,菜單和命令方式、表達式、數(shù)組和常用函數(shù); ③修改數(shù)據(jù)庫文件。MODIFY STRUCTURE、INSERET、DELETE、RECALL、PACK、EDIT、CHANGE、BROWSE、REPLACE、SCATTER、GATHER; ④復制數(shù)據(jù)庫文件。COPY STRUCTURE、COPY TO、數(shù)據(jù)庫的結構文件、成批記錄的復制; ⑤磁盤文件的基本操作。COPY FILE、RENAME FILE、DELETE FILE、DIR、TYPE FILE; 3、查詢和統(tǒng)計 ①排序和索引sort、index; ②查詢命令locate、find、seek、continue、skip; ③數(shù)據(jù)工作期、視圖文件、表的關聯(lián)、多工作區(qū)查詢、庫文件的關聯(lián); ④SELECT-SQL查詢。 ○5統(tǒng)計命令COUNT、SUM、AVERAGE、CALCULATE、TOTAL; 4、程序設計初步 ①程序文件。程序文件的建立和執(zhí)行MODIFY COMMAND<命令文件>、DO <命令文件>和菜單方式執(zhí)行、狀態(tài)命令設置、INPUT、ACCEPT、WAIT、?、??、; ②程序控制命令。程序設計的三種結構順序、分支、循環(huán); ③多模塊化程序設計?;靖拍睢⒆映绦?、函數(shù)、過程、全程變量和局部變量; 5、窗口設計 ①窗口操作命令。窗口的定義與修改DEFINE WINDOW、ACTIVATE WINDOW、MODIFYWINDOW、HIDE WINDOWS、SHOW WINDOW、DEACTIVATE WINDOWRELEASE WINDOW、CLEAR WINDOW、CLEAR ALL; ②窗口著色。顏色對與顏色模式、SET COLOR TO、COLOR SCHEME、SET COLOROFSCHEME; ③BROWSE窗口設計。定義BROWSE窗口、定義功能鍵。 6、菜單設計 ①下拉式菜單設計 ②彈出式選單設計 7、表單設計基礎 ① 表單向導 ② 表單設計器 ③面向對象的程序設計方法(基本概念、對象的引用) 8、表單控件設計 ① 輸出類控件(標簽、圖象、線條、形狀) ② 輸入類控件(文本框、編輯框、列表框與組合框、微調控件)③ 控制類控件(美麗按鈕與美麗按鈕組)④ 容器類控件(表格、頁框、容器) ⑤ 連接類控件(ActiveX控件、ActiveX綁定控件) 9、表單高級設計 ①多表單應用程序(應用程序界面、表單集) ②用戶定義屬性與方法程序(用戶定義屬性、用戶定義方法程序)③類(基本概念、用戶定義類)④表單/表單集設計實例 10、報表設計 ①打印基礎。打印準備、打印方法、打印命令 ②傳統(tǒng)的打印設計 ③報表設計器的基本操作(打開標本設計器窗口、快速制表、標本打?。軋蟊碓O計器的高級操作,了解 9、系統(tǒng)開發(fā)實例(對本科做基本的講解)①開發(fā)的基本步驟 ○2以具體的實例進行講解 二、《高級語言程序設計(Visual FoxPro語言)》大綱說明 1、教學目的與任務 在當今時代,計算機已經(jīng)在世界范圍內得到廣泛的推廣和應用。其中信息管理和數(shù)據(jù)處理已成為計算機應用的主流領域,而數(shù)據(jù)庫技術是這個領域的核心之一。 Visual FoxPro系統(tǒng)是一個優(yōu)秀的多用戶關系數(shù)據(jù)庫管理系統(tǒng)。本課程詳細地講解了Visual FoxPro的各種命令、函數(shù)的功能,以及Visual FoxPro程序設計的方法,培養(yǎng)學生能靈活地應用Visual FoxPro 語言設計程序、進行維護管理,充分發(fā)揮計算機在信息管理和數(shù)據(jù)處理方面的優(yōu)越性。 《高級語言程序設計(Visual FoxPro語言)》是面向全院所有專業(yè)本、??粕挠嬎銠C高級語言程序,它側重于數(shù)據(jù)庫的基本概念、數(shù)據(jù)庫的基本操作、簡單的程序設計、菜單程序設計、窗口菜單設計以及必須掌握的表單設計和簡單的菜單生成程序設計。側重于計算機對數(shù)據(jù)的基本處理、表單的數(shù)據(jù)輸出,使學生具備一定的計算機高級語言程序設計的能力,為學生利用計算機解決問題(特別是專業(yè)中的問題)準備必要的知識;本大綱重點基于數(shù)據(jù)庫的基本操作和簡單的程序設計,為學生學習相應的語言打下一定的基礎。 2、本課程與其他課程的關系 學習本課程,需要有一定的計算機基本操作技能,對計算機有一定的了解和使用。它是學 要求學生掌握計算機高級語言以及對計算機對數(shù)據(jù)處理方式和方法的掌握。為學習今后學習計算機解決問題和高年級學習專業(yè)課打下堅實的基礎。 3、教學基本要求 具有使用計算機高級語言解決基本問題的能力,掌握計算機對數(shù)據(jù)處理的方法和掌握計算機對數(shù)據(jù)處理的基本操作技能。要求學生學習了本課程后,能編制簡單的程序解決數(shù)據(jù)處理的問題,掌握程序設計的基本方法。 了解數(shù)據(jù)庫的基本原理和數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)的關系,了解Visual FoxPro的基本性能指標,掌握數(shù)據(jù)庫的基本使用方法。 掌握數(shù)據(jù)庫的基本統(tǒng)計和數(shù)據(jù)庫記錄的查詢。 掌握程序設計的三種方法和簡單的程序設計,這是全書的重點。 掌握菜單設計、窗口設計、菜單設計,對菜單設計,只要求掌握屏幕菜單方式和屏幕生成程序,對命令方式只做基本的了解。 4、實驗課程 附實驗大綱,按實驗大綱的要求完成實驗。 5、課程學時安排 學時安排遵循理論重于實踐,理論課的學時分配占總學時的60%,實驗課的操作,要求嚴格按照實驗大綱,以循序漸進的方式進行,如果學生沒有完成當天實驗課程的任務,學生可以自己找時間自己解決。 章 次 講 課 內 容 授課 上機 第一部分 數(shù)據(jù)庫的基本概念第二部分 數(shù)據(jù)庫的基本操作第三部分 查詢與統(tǒng)計、SQL 第四部分 程序設計基礎第五部分 菜單設計第六部分 表單設計及基礎第七部分 表單高級設計第八部分 報表設計合計 22 6、教學參考資料 《數(shù)據(jù)庫及其應用》 牛允鵬等 經(jīng)濟科學出版社 《Visual FoxPro活學活用》 張佑挺 張錦川等 重慶大學出版社 《Visual FoxPro及其應用系統(tǒng)開發(fā)》 史濟民 湯觀全編著 清華大學出版社 《FoxPro用戶參考大全》 金榮得 胡傳國等 電子出版社 《FoxBASE數(shù)據(jù)庫應用教程》 北京希望電子出版社 《FoxPro命令與函數(shù)》 張錦豪等 學苑出版社 《FoxPro數(shù)據(jù)庫實用教程》 王跟東等編著 四川大學出版社第二篇:《高級語言程序設計C》實驗教學大綱
第三篇:高級語言程序設計(C語言)實驗教學大綱
第四篇:高級語言程序設計(VB)實驗評分方法及注意事項
第五篇:高級語言程序設計-教學大綱