黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平
駕駛員 | 網絡編輯
衛生資格 | 執業醫師 | 執業藥師 | 執業護士
會計從業資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師
質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師
城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

計算機等級考試三級C語言上機試題總結

 100個產品銷售記錄排序(此類共10題)
code:
/*
已知在文件IN.DAT中存有100個產品銷售記錄, 每個產品銷售記錄由產品代碼dm(字符型4位), 產品名稱mc(字符型10位), 單價dj(整型), 數量sl(整型), 金額je(長整型)五部分組成。 其中:金額=單價*數量計算得出。函數ReadDat( )讀取這100個銷售記錄并存入結構數組sell中。請編制函數SortDat( ), 其功能要求:

按金額從小到大進行排列, 若金額相等, 則按產品代碼從小到大進行排列, 最終排列結果仍存入結構數組sell中。最后main( )函數調用函數WriteDat()把結果輸出到文件OUT1.DAT中。

注意: 部分源程序存放在PROG1.C中。請勿改動主函數main( )、讀數據函數ReadDat()和輸出數據函
數WriteDat()的內容。
*/
#include <stdio.h>
#include <mem.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>

#define MAX 100
typedef struct {
char dm[5] ; /* 產品代碼 */
char mc[11] ; /* 產品名稱 */
int dj ; /* 單價 */
int sl ; /* 數量 */
long je ; /* 金額 */
} PRO ;
PRO sell[MAX] ;
void ReadDat() ;
void WriteDat() ;

void SortDat()
{/**/
int i,j,k;
PRO tt;
for(i=0; i < MAX-1; i++)
{ k=i;
for(j=i+1; j < MAX; j++)
if((sell[k].je>sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm, sell[j].dm)>0))
k=j;
if(k!=i)
{ tt=sell[k]; sell[k]=sell[i]; sell[i]=tt;}
}
/**/
}

void main()
{
memset(sell, 0, sizeof(sell)) ;
ReadDat() ;
SortDat() ;
WriteDat() ;
}

void ReadDat()
{
FILE *fp ;
char str[80], ch[11] ;
int i ;

fp = fopen("IN.DAT", "r") ;
for(i = 0 ; i < 100 ; i++) {
fgets(str, 80, fp) ;
memcpy(sell[i].dm, str, 4) ;
memcpy(sell[i].mc, str + 4, 10) ;
memcpy(ch, str + 14, 4) ; ch[4] = 0 ;
sell[i].dj = atoi(ch) ;
memcpy(ch, str + 18, 5) ; ch[5] = 0 ;
sell[i].sl = atoi(ch) ;
sell[i].je = (long)sell[i].dj * sell[i].sl ;
}
fclose(fp) ;
}

void WriteDat()
{
FILE *fp ;
int i ;

fp = fopen("OUT1.DAT", "w") ;
for(i = 0 ; i < 100 ; i++) {
fprintf(fp, "%s %s %4d %5d %10ld\n", sell[i].dm, sell[i].mc, sell[i].dj, sell[i].sl, sell[i].je) ;
}
fclose(fp) ;
}

100個產品銷售記錄排序其余9題說明

1) in.dat 內容完全相同。
2) 程序也基本雷同,僅排序的要求不一樣。
3) 考生應熟悉 strcmp() 函數,否則有的題相當不好處理。

之二
排序要求:
按金額從小到大進行排列, 若金額相等, 則按產品代碼從大到小進行排列
相應語句:
if(sell[k].je>sell[j].je|| (sell[k].je==sell[j].je) &&
(strcmp(sell[k].dm, sell[j].dm) < 0))

之三
排序要求:
按金額從大到小進行排列, 若金額相等, 則按產品代碼從小到大進行排列
相應語句:
if((sell[k].je <
sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm,
sell[j].dm)>0))

之四
排序要求:
按金額從大到小進行排列, 若金額相等, 則按產品代碼從大到小進行排列
相應語句:
if((sell[k].je <
sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm,sell[j].dm)<0))

之五
排序要求:
按產品名稱從小到大進行排列, 若產品名稱相同, 則按金額從小到大進行排列
相應語句:
if((strcmp(sell[k].mc,
sell[j].mc)>0)||(strcmp(sell[k].mc,sell[j].mc)==0)&&(sell[k].je>sell[j].je))

之六
排序要求:
按產品名稱從小到大進行排列, 若產品名稱相同, 則按金額從大到小進行排列
相應語句:
if(strcmp(sell[i].mc, sell[j].mc)>0 || (strcmp(sell[i].mc,
sell[j].mc)==0)&&(sell[i].je < sell[j].je))

之七
排序要求:
按產品名稱從大到小進行排列, 若產品名稱相同, 則按金額從小到大進行排列
相應語句:
if((strcmp(sell[k].mc, sell[j].mc) < 0) ||
(strcmp(sell[k].mc,sell[j].mc)==0)&&(sell[k].je>sell[j].je))

之八
排序要求:
按產品名稱從大到小進行排列, 若產品名稱相同, 則按金額從大到小進行排列
相應語句:
if((strcmp(sell[k].mc, sell[j].mc) < 0)|| (strcmp(sell[k].mc,
sell[j].mc)==0)&&(sell[k].je < sell[j].je))

之九
排序要求:
按產品代碼從小到大進行排列, 若產品代碼相同, 則按金額從小到大進行排列
相應語句:
if((strcmp(sell[k].dm,
sell[j].dm)>0)||(strcmp(sell[k].dm,sell[j].dm)==0)&&(sell[k].je>sell[j].je

code:
/*
已知在文件IN.DAT中存有100個產品銷售記錄, 每個產品銷售記錄由產品代碼dm(字符型4位), 產品名稱mc(字符型10位), 單價dj(整型), 數量sl(整型), 金額je(長整型)五部分組成。 其中:金額=單價*數量計算得出。函數ReadDat( )讀取這100個銷售記錄并存入結構數組sell中。請編制函數SortDat( ), 其功能要求:

按產品代碼從大到小進行排列, 若產品代碼相同, 則按金額從大到小進行排列, 最終排列結果仍存入結構數組sell中。最后main()函數調用函數WriteDat()把結果輸出到文件OUT10.DAT中。

注意: 部分源程序存放在PROG1.C中。
請勿改動主函數main( )、讀數據函數ReadDat()和輸出數據函數WriteDat()的內容。
*/
#include <stdio.h>
#include <mem.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>

#define MAX 100
typedef struct {
char dm[5] ; /* 產品代碼 */
char mc[11] ; /* 產品名稱 */
int dj ; /* 單價 */
int sl ; /* 數量 */
long je ; /* 金額 */
} PRO ;
PRO sell[MAX] ;
void ReadDat() ;
void WriteDat() ;

void SortDat()
{/**/
int i,j;
PRO tt;
for(i=0; i < MAX-1; i++)
for(j=i+1; j < MAX; j++)
{ if(strcmp(sell[i].dm, sell[j].dm) < 0)
{ tt=sell[i]; sell[i]=sell[j]; sell[j]=tt;}
if((strcmp(sell[i].dm, sell[j].dm)==0)&&(sell[i].je < sell[j].je))
{ tt=sell[i]; sell[i]=sell[j]; sell[j]=tt;}
}
/**/
}

void main()
{
memset(sell, 0, sizeof(sell)) ;
ReadDat() ;
SortDat() ;
WriteDat() ;
}

void ReadDat()
{
FILE *fp ;
char str[80], ch[11] ;
int i ;

fp = fopen("IN.DAT", "r") ;
for(i = 0 ; i < 100 ; i++) {
fgets(str, 80, fp) ;
memcpy(sell[i].dm, str, 4) ;
memcpy(sell[i].mc, str + 4, 10) ;
memcpy(ch, str + 14, 4) ; ch[4] = 0 ;
sell[i].dj = atoi(ch) ;
memcpy(ch, str + 18, 5) ; ch[5] = 0 ;
sell[i].sl = atoi(ch) ;
sell[i].je = (long)sell[i].dj * sell[i].sl ;
}
fclose(fp) ;
}

void WriteDat()
{
FILE *fp ;
int i ;

fp = fopen("OUT10.DAT", "w") ;
for(i = 0 ; i < 100 ; i++) {
fprintf(fp, "%s %s %4d %5d %10ld\n", sell[i].dm, sell[i].mc, sell[i].dj, sell[i].sl, sell[i].je) ;
}
fclose(fp) ;
}


300個四位數問題(此類共10題)

本類10題中,五題產生數組B,并對B按一定要求排序;其余五題是求平均值。我把它們分成兩組五題來討論。
以下為產生數組B之題一:

code:
/*
已知數據文件IN.DAT中存有300個四位數, 并已調用讀函數readDat()把這些數存入數組a中, 請編制一函數jsvalue(),其功能是: 求出個位數上的數減千位數上的數減百位數上的數減十位數上的數大于零的個數cnt, 再把所有滿足此條件的四位數依次存入數組b中, 然后對數組b的四位數按從大到小的順序進行排序。最后main( )函數調用寫函數writeDat()把數組b中的數輸出到文件OUT.DAT。

例如: 1239, 9-1-2-3>0, 則該數滿足條件存入數組b中, 且個數cnt=cnt+1。
8129, 9-8-1-2<0, 則該數不滿足條件忽略。

注意: 部分源程序存在文件PROG1.C文件中。
程序中已定義數組: a[300], b[300], 已定義變量: cnt請勿改動數據文件IN.DAT中的任何數據、主函數main()、讀函數readDat()和寫函數writeDat()的內容。
*/
#include <stdio.h>
int a[300], b[300], cnt=0 ;
jsvalue()
{/**/
int i,j,k,t;
for(i=0; i < 300; i++)
if(a[i]%10-a[i]/1000-a[i]/100%10-a[i]/10%10>0)
b[cnt++]=a[i];
for(i=0; i < cnt-1; i++)
{ k=i;
for(j=i+1; j < cnt; j++)
if(b[k] < b[j]) k=j;
if(k!=i) { t=b[k]; b[k]=b[i]; b[i]=t; }
}
/**/
}

main()
{
int i ;

readDat() ;
jsvalue() ;
writeDat() ;
printf("cnt=%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) printf("b[%d]=%d\n", i, b[i]) ;
}

readDat()
{
FILE *fp ;
int i ;
fp = fopen("in.dat","r") ;
for(i = 0 ; i < 300 ; i++) fscanf(fp, "%d,", &a[i]) ;
fclose(fp) ;
}

writeDat()
{
FILE *fp ;
int i ;
fp = fopen("out.dat","w") ;
fprintf(fp, "%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
fclose(fp) ;
}

要求:
求出所有這些四位數是素數的個數cnt, 再把所有滿足此條件的四位數依次存入數組b中, 然后對數組b的四位數按從小到大的順序進行排序。

out.dat 文件內容應當為:
30
1231
1277
1283
1319
2543
2609
3793
3911
4013
4549
4817
4933
5591
5843
5939
6733
6791
6841
6871
6917
7297
7369
7703
8101
8221
8941
9013
9461
9689
9887

之四
要求:
求出千位數上的數減百位數上的數減十位數上的數減個位數上的數大于零的個數cnt, 再把所有滿足此條件的四位數依次存入數組b中, 然后對數組b的四位數按從小到大的順序進行排序。

out.dat 文件內容應當為:
20
4002
4102
5111
5400
6014
6302
7050
7105
7113
8101
8130
8203
8221
8303
8700
9013
9016
9052
9053
9800

之五
要求:
求出千位數上的數加百位數上的數等于十位數上的數加個位數上的數的個數cnt, 再把所有滿足此條件的四位數依次存入數組b中, 然后對數組b的四位數按從大到小的順序進行排序。

out.dat 文件內容應當為:
22
7795
7429
7328
7153
6978
6767
6556
6226
5591
5555
5427
4509
4013
3672
3663
3205
3131
2855
2763
2543
2507
1625

求滿足條件的數的個數、平均值……
求滿足條件的數的個數、平均值及不滿足條件的數的平均值等,此類也是五題。本處僅給出一個全題,其余題只給出不同之處。

code:
/*
已知數據文件IN.DAT中存有300個四位數, 并已調用讀函數readDat()把這些數存入數組a中, 請編制一函數jsvalue(),其功能是: 求出千位數上的數減百位數上的數減十位數上的數減個位數上的數大于零的個數cnt, 再求出所有滿足此條件的四位數平均值pjz1, 以及所有不滿足此條件的四位數平均值pjz2。最后main()函數調用寫函數writeDat()把結果cnt,pjz1,pjz2輸出到OUT.DAT文件。

例如: 9123, 9-1-2-3>0, 則該數滿足條件計算平均值pjz1,且個數cnt=cnt+1。
9812, 9-8-1-2<0, 則該數不滿足條件計算平均值pjz2。

注意: 部分源程序存在文件PROG1.C文件中。
程序中已定義數組: a[300], 已定義變量: cnt,pjz1,pjz2請勿改動數據文件IN.DAT中的任何數據、主函數main()、讀函數readDat()和寫函數writeDat()的內容。
*/
#include
int a[300], cnt=0 ;
double pjz1=0.0, pjz2=0.0 ;
jsvalue()
{/**/
int i;
for(i=0; i < 300; i++)
if(a[i]/1000-a[i]/100%10-a[i]/10%10-a[i]%10>0)
{ cnt++; pjz1+=a[i]; }
else pjz2+=a[i];
if(cnt) pjz1/=cnt;
if(cnt<300) pjz2/=300-cnt;
/**/
}

main()
{
int i ;

readDat() ;
jsvalue() ;
writeDat() ;
printf("cnt=%d\n滿足條件的平均值pzj1=%7.2lf\n不滿足條件的平均值pzj2=%7.2lf\n", cnt,pjz1,pjz2);
}

readDat()
{
FILE *fp ;
int i ;
fp = fopen("in.dat","r") ;
for(i = 0 ; i < 300 ; i++) fscanf(fp, "%d,", &a[i]) ;
fclose(fp) ;
}

writeDat()
{
FILE *fp ;
int i ;
fp = fopen("out.dat","w") ;
fprintf(fp, "%d\n%7.2lf\n%7.2lf\n", cnt, pjz1, pjz2) ;
fclose(fp) ;
}

in.dat 與前面給出的完全相同,out.dat 內容應當如下:
20
7389.55
5524.03

滿足條件數的平均數……四題之說明

之二

要求:
求出千位數上的數加百位數上的數等于十位數上的數加個位數上的數的個數cnt, 再求出所有滿足此條件的四位數平均值pjz1, 以及所有不滿足此條件的四位數平均值pjz2。

正確程序生成的 out.dat 文件內容應當如下:
22
4876.86
5709.46

之三
要求:
求出個位數上的數減千位數上的數減百位數上的數減十位數上的數大于零的個數cnt, 再求出所有滿足此條件的四位數平均值pjz1, 以及所有不滿足此條件的四位數平均值pjz2。

正確程序生成的 out.dat 文件內容應當如下:
12
2926.08
5761.83

之四
要求:
求出所有這些四位數是素數的個數cnt, 再求出所有滿足此條件的四位數平均值pjz1, 以及所有不滿足此條件的四位數平均值pjz2。

正確程序生成的 out.dat 文件內容應當如下:
30
5782.87
5633.46

之五
要求:
求出千位數上的數加個位數上的數等于百位數上的數加十位數上的數的個數cnt, 再求出所有滿足此條件的四位數平均值pjz1, 以及所有不滿足此條件的四位數平均值pjz2。

正確程序生成的 out.dat 文件內容應當如下:
18
6681.22
5582.48

200個四位數(此類共10題)
此部分題與300個數的題有相似之處。
之一

code:
/*
已知數據文件IN.DAT中存有200個四位數, 并已調用讀函數readDat()把這些數存入數組a中,請考生編制一函數jsVal(),其功能是: 把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數ab>cd, ab必須是偶數且能被5整除, cd必須是奇數,同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。最后main()函數調用寫函數writeDat( )把結果cnt以及數組b中符合條件的四位數輸出到OUT.DAT文件中。

注意: 部分源程序存在文件PROG1.C文件中。
程序中已定義數組: a[200], b[200], 已定義變量: cnt請勿改動數據文件IN.DAT中的任何數據、主函數main()、讀函數readDat()和寫函數writeDat()的內容。
*/
#include <stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt = 0 ;

void jsVal()
{/**/
int i,j,k,A,B,C,D;
for(i=0; i < MAX; i++)
{ A=a[i]/1000; B=a[i]/10%10; C=a[i]%10; D=a[i]/100%10;
if(A&&C&&(B==0)&&(D%2)&&(10*A>10*C+D))
b[cnt++]=a[i];
}
for(i=0; i < cnt-1; i++)
{ k=i;
for(j=i+1; j < cnt; j++)
if(b[k] < b[j]) k=j;
if(k!=i) {A=b[k]; b[k]=b[i]; b[i]=A;}
}
/**/
}

void readDat()
{
int i ;
FILE *fp ;
fp = fopen("in.dat", "r") ;
for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
fclose(fp) ;
}

void main()
{
int i ;
readDat() ;
jsVal() ;
printf("滿足條件的數=%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;
printf("\n") ;
writeDat() ;
}

writeDat()
{
FILE *fp ;
int i ;
fp = fopen("out.dat", "w") ;
fprintf(fp, "%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
fclose(fp) ;

200個四位數題之其余九題說明

之二


要求:
把千位數字和十位數字重新組成一個新的十位數(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數(新十位數的十位數字是原四位數的個位數字, 新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數均是素數且新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。

out.dat 的內容應當為:
10
9971
8398
7711
6375
4719
4173
2736
2398
2397
1997

之三

要求:
把個位數字和千位數字重新組成一個新的十位數(新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的千位數字), 以及把百位數字和十位數字組成另一個新的十位數(新十位數的十位數字是原四位數的百位數字, 新十位數的個位數字是原四位數的十位數字), 如果新組成的兩個十位數必須是一個奇數,另一個為偶數并且兩個十位數中至少有一個數能被17整除,同時兩個新數的十位數字均不為零, 則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。

out.dat 的內容應當為:
7
8656
8174
7781
7683
4313
4173
2513

之四

要求:
)把這些數存入數組a中,請考生編制一函數jsVal(),其功能是: 把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數ab-cd>=10且ab-cd<=20且兩個數均是偶數,同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。

out.dat 的內容應當為:
5
9068
5224
5024
3821
2281

之五

要求:
如果四位數各位上的數字均是0或2或4或6或8, 則統計出滿足此條件的個數cnt, 并把這些四位數按從大到小的順序存入數組b中。

out.dat 的內容應當為:
11
8448
6820
4488
4060
2888
2884
2686
2624
2484
2420
2042

之六

要求:
把千位數字和個位數字重新組成一個新的十位數(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的個位數字), 以及把百位數字和十位數字組成另一個新的十位數(新十位數的十位數字是原四位數的百位數字, 新十位數的個位數字是原四位數的十位數字), 如果新組成的兩個十位數均是奇數并且兩個十位數中至少有一個數能被5整除, 同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。

out.dat 的內容應當為:
10
9851
8275
6375
5755
5359
4951
4595
4395
3575
3135

之七

要求:
把個位數字和千位數字重新組成一個新的十位數(新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的千位數字), 以及把百位數字和十位數字組成另一個新的十位數(新十位數的十位數字是原四位數的百位數字, 新十位數的個位數字是原四位數的十位數字), 如果新組成的兩個十位數均是偶數并且兩個十位數中至少有一個數能被9整除, 同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。

out.dat 的內容應當為:
13
8761
8724
8441
6722
6603
6545
6323
6181
4369
4285
4125
2724
2362

之八

要求:
把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數ab 同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。

out.dat 的內容應當為:
12
7878
5437
3897
2893
2877
2438
2039
2035
2033
1619
1494
1493

之九

要求:
如果四位數各位上的數字均是奇數,則統計出滿足此條件的個數cnt并把這些四位數按從大到小的順序存入數組b中。

out.dat 的內容應當為:
13
9971
7973
7711
7511
5755
5359
5311
3575
3537
3135
1997
1979
1531

之十

要求:
把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數ab-cd>=0且ab-cd<=10且兩個數均是奇數, 同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入數組b中, 并要計算滿足上述條件的四位數的個數cnt。

out.dat 的內容應當為:
5
8398
7996
5954
4313
2311

小于200個四位數之一(共四題)
code:
/*
已知在文件IN.DAT中存有若干個(個數<200)四位數字的正整數, 函數ReadDat( )讀取這若干個正整數并存入數組xx中。請編制函數Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個正整數totNum; 2.求出這些數中的各位數字之和是奇數的數的個數totCnt, 以及滿足此條件的這些數的算術平均值totPjz。最后main( )函數調用函數WriteDat()把所求的結果輸出到OUT.DAT文件中。

注意: 部分源程序存放在PROG1.C中。
請勿改動數據文件IN.DAT中的任何數據,主函數main()、讀數據函數ReadDat()和輸出數據函數WriteDat()的內容。
*/
#include <stdio.h>
#include <conio.h>
#define MAXNUM 200

int xx[MAXNUM] ;
int totNum = 0 ; /* 文件IN.DAT中共有多少個正整數 */
int totCnt = 0 ; /* 符合條件的正整數的個數 */
double totPjz = 0.0 ; /* 平均值 */

int ReadDat(void) ;
void WriteDat(void) ;

void Calvalue(void)
{/**/
while(xx[totNum])
{ if((xx[totNum]/1000+xx[totNum]/100%10+xx[totNum]/10%10+xx[totNum])%2)
{ totCnt++; totPjz+=xx[totNum]; }
totNum++;
}
if(totCnt) totPjz/=totCnt;
/**/
}

void main()
{
int i ;
clrscr() ;
for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
if(ReadDat()) {
printf("數據文件IN.DAT不能打開!\007\n") ;
return ;
}
Calvalue() ;
printf("文件IN.DAT中共有正整數=%d個\n", totNum) ;
printf("符合條件的正整數的個數=%d個\n", totCnt) ;
printf("平均值=%.2lf\n", totPjz) ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;

if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
while(!feof(fp)) {
fscanf(fp, "%d,", &xx[i++]) ;
}
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;

fp = fopen("OUT.DAT", "w") ;
fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
fclose(fp) ;
}

in.dat 文件內容如下:
6045,6192,1885,3580,8544,6826,5493,8415,3132,5841,
6561,3173,9157,2895,2851,6082,5510,9610,5398,5273,
3438,1800,6364,6892,9591,3120,8813,2106,5505,1085,
5835,7295,6131,9405,6756,2413,6274,9262,5728,2650,
6266,5285,7703,1353,1510,2350,4325,4392,7573,8204,
7358,6365,3135,9903,3055,3219,3955,7313,6206,1631,
5869,5893,4569,1251,2542,5740,2073,9805,1189,7550,
4362,6214,5680,8753,8443,3636,4495,9643,3782,5556,
1018,9729,8588,2797,4321,4714,9658,8997,2080,5912,
9968,5558,9311,7047,6138,7618,5448,1466,7075,2166,
4025,3572,9605,1291,6027,2358,1911,2747,7068,1716,
9661,5849,3210,2554,8604,8010,7947,3685,2945,4224,
7014,9058,6259,9503,1615,1060,7787,8983,3822,2471,
5146,7066,1029,1777,7788,2941,3538,2912,3096,7421,
9175,6099,2930,4685,8465,8633,2628,7155,4307,9535,
4274,2857,6829,6226,8268,9377,9415,9059,4872,6072,

out.dat 文件內容應當如下:
160
69
5460.51

小于200個四位數之二(共四題)
code:
/*
已知在文件IN.DAT中存有若干個(個數<200)四位數字的正整數, 函數ReadDat( )讀取這若干個正整數并存入數組xx中。請編制函數Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個正整數totNum; 2.求出這些數中的各位數字之和是偶數的數的個數totCnt, 以及滿足此條件的這些數的算術平均值totPjz。最后main( )函數調用函數WriteDat()把所求的結果輸出到OUT.DAT文件中。

注意: 部分源程序存放在PROG1.C中。
請勿改動數據文件IN.DAT中的任何數據,主函數main()、讀數據函數ReadDat()和輸出數據函數WriteDat()的內容。
*/
#include
#include
#define MAXNUM 200

int xx[MAXNUM] ;
int totNum = 0 ; /* 文件IN.DAT中共有多少個正整數 */
int totCnt = 0 ; /* 符合條件的正整數的個數 */
double totPjz = 0.0 ; /* 平均值 */

int ReadDat(void) ;
void WriteDat(void) ;

void Calvalue(void)
{/**/
for(; xx[totNum]; totNum++)
if((xx[totNum]/1000+xx[totNum]/100%10+xx[totNum]/10%10+xx[totNum]%10)%2==0)
{ totCnt++; totPjz+=xx[totNum];}
if(totCnt) totPjz/=totCnt;
/**/
}

void main()
{
int i ;
clrscr() ;
for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
if(ReadDat()) {
printf("數據文件IN.DAT不能打開!\007\n") ;
return ;
}
Calvalue() ;
printf("文件IN.DAT中共有正整數=%d個\n", totNum) ;
printf("符合條件的正整數的個數=%d個\n", totCnt) ;
printf("平均值=%.2lf\n", totPjz) ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;

if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
while(!feof(fp)) {
fscanf(fp, "%d,", &xx[i++]) ;
}
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;

fp = fopen("OUT.DAT", "w") ;
fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
fclose(fp) ;
}

out.dat 文件內容應當如下:
160
91
5517.16


200個四位數之三(共四題)
code:
/*
已知在文件IN.DAT中存有若干個(個數<200)四位數字的正整數, 函數ReadDat( )讀取這若干個正整數并存入數組xx中。請編制函數Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個正整數totNum; 2. 求這些數右移1位后, 產生的新數是奇數的數的個數totCnt, 以及滿足此條件的這些數(右移前的值)的算術平均值totPjz。最后main()函數調用函數WriteDat()把所求的結果輸出到文件OUT.DAT中。

注意: 部分源程序存放在PROG1.C中。
請勿改動數據文件IN.DAT中的任何數據,主函數main()、讀數據函數ReadDat()和輸出數據函數WriteDat()的內容。
*/
#include
#include
#define MAXNUM 200

int xx[MAXNUM] ;
int totNum = 0 ; /* 文件IN.DAT中共有多少個正整數 */
int totCnt = 0 ; /* 符合條件的正整數的個數 */
double totPjz = 0.0 ; /* 平均值 */

int ReadDat(void) ;
void WriteDat(void) ;

void Calvalue(void)
{/**/
for(; xx[totNum]; totNum++)
if((xx[totNum]>>1)%2)
{ totCnt++; totPjz+=xx[totNum];}
if(totCnt) totPjz/=totCnt;
/**/
}

void main()
{
int i ;
clrscr() ;
for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
if(ReadDat()) {
printf("數據文件IN.DAT不能打開!\007\n") ;
return ;
}
Calvalue() ;
printf("文件IN.DAT中共有正整數=%d個\n", totNum) ;
printf("符合條件的正整數的個數=%d個\n", totCnt) ;
printf("平均值=%.2lf\n", totPjz) ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;

if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
while(!feof(fp)) {
fscanf(fp, "%d,", &xx[i++]) ;
}
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;

fp = fopen("OUT.DAT", "w") ;
fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
fclose(fp) ;
}

out.dat 文件內容應當如下:
160
80
5537.54

小于200個四位數之四(共四題)
code:
/*
已知在文件IN.DAT中存有若干個(個數<200)四位數字的正整數, 函數ReadDat( )讀取這若干個正整數并存入數組xx中。請編制函數Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個正整數totNum; 2. 求這些數右移1位后, 產生的新數是偶數的數的個數totCnt, 以及滿足此條件的這些數(右移前的值)的算術平均值totPjz。最后main()函數調用函數WriteDat()把所求的結果輸出到文件OUT.DAT中。

注意: 部分源程序存放在PROG1.C中。
請勿改動數據文件IN.DAT中的任何數據,主函數main()、讀數據函數ReadDat()和輸出數據函數WriteDat()的內容。
*/
#include
#include
#define MAXNUM 200

int xx[MAXNUM] ;
int totNum = 0 ; /* 文件IN.DAT中共有多少個正整數 */
int totCnt = 0 ; /* 符合條件的正整數的個數 */
double totPjz = 0.0 ; /* 平均值 */

int ReadDat(void) ;
void WriteDat(void) ;

void Calvalue(void)
{/**/
for(; xx[totNum]>0; totNum++)
if((xx[totNum]>>1)%2==0)
{ totCnt++; totPjz+=xx[totNum]; }
if(totCnt) totPjz/=totCnt;
/**/
}

void main()
{
int i ;
clrscr() ;
for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
if(ReadDat()) {
printf("數據文件IN.DAT不能打開!\007\n") ;
return ;
}
Calvalue() ;
printf("文件IN.DAT中共有正整數=%d個\n", totNum) ;
printf("符合條件的正整數的個數=%d個\n", totCnt) ;
printf("平均值=%.2lf\n", totPjz) ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;

if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
while(!feof(fp)) {
fscanf(fp, "%d,", &xx[i++]) ;
}
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;

fp = fopen("OUT.DAT", "w") ;
fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
fclose(fp) ;
}

out.dat 文件內容應當如下:
160
80
5447.93

1 2 3 下一頁
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 国产精品免费视频一区二区三区 | 大jjjj免费看视频 | 亚洲激情视频在线观看 | 狠狠色噜噜狠狠狠合久 | 国产成人在线视频免费观看 | 国内精品福利 | 欧美国产日本高清不卡免费 | 亚洲区一二三四区2021 | 欧美亚洲免费久久久 | 亚洲日韩欧美综合 | 欧美专区日韩 | 视频三区精品中文字幕 | 天天插天天舔 | 久久免费99精品国产自在现线 | 最近最中文字幕视频 | 一区二区视频在线免费观看 | 日韩黄色大全 | 性欧美高清另类videoso | 欧美精品1区2区 | 波多野结衣视频在线观看 | 嗯啊视频在线观看 | 免费一级欧美大片在线观看 | 日韩h片 | 日本高清www无色夜在 | 在线观看深夜 | 欧洲亚洲一区二区三区 | 国内精品视频一区二区三区 | 国产日韩欧美另类重口在线观看 | 一区二区中文字幕在线观看 | 国内成人精品视频 | yellow在线免费视频 | 欧美8888 | 亚欧精品一区二区三区四区 | 黄网在线看 | 涩涩综合| 91最新地址永久入口 | 精品视频免费播放 | 色综合久久五月 | 国产一级特黄高清免费大片dvd | 国产一级一级片 | 福利800av视频导航 |