首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
1.程序填空
給定程序的功能是判斷字符ch是否與串str中的某個字符相同:若相同,什么也不做,若不同,則插在串的最后。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果
注意:不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <stdio.h>
#include <string.h>
void fun(char*str, char ch )
{ while ( *str && *str != ch ) str++;
if( *str 1 ch )
{ str[0] =ch;
2 = 0;
}
}
main( )
{ char s[81], c;
printf( "\nPlease enter a string:\n" ); gets ( s );
printf ("\n Please enter the character to search : " );
c = getcharO;
fun( 3 ) ;
printf( "\nThe result is %s\n", s);
1.程序填空
【答案】
(1)!=
(2)str[1]
(3)s,c
【評析】
(1)fun函數中先設置了二個循環從字符串str中尋找字符ch,如果找到則中斷循環并保留字符ch的地址,否則一直循環到串尾"。因此通過判斷*str的內容即可判斷是否已找到字符ch。
(2)如果沒有找到字符ch,則在while循環后str指針指向串結束符Ox00,此時應將字符ch寫入這里并在下一地址寫入一個串結束符Ox00,所以應該是"str[1]。O;"語句。
(3)此句是調用fun()函數,括弧中是其實際參數。
2.程序修改
給定程序modi.c中,函數fun的功能是:'根據形參m的值(2≤m≤9),在m行m列的二維數組中存放如下所示的數據,由main()函數輸出。
例如,若輸入2 ︳若輸入4
則輸出: ︳則輸出:
1 2 ︳ 1 2 3 4
2 4 ︳ 2 4 6 8
︳ 3 6 9 12
︳ 4 8 12 16
請改正程序中的錯誤,使它能得出正確結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <stdio.h>
#include <conio.h>
#define M 10
int a[M][M]={0};
fun(int **a, int m)
{ int j,k;
for (j=0;j<m;j++)
for (k=0;k<m;l~++)
a[j][k]=k*j;
}
main()
{ int i,j,n;
clrscr0;
printf("Enter n:");scanf("%d",&n);
fun(a,n);
for(i=0;i<n;i++)
{ forO=O;j<n;j++)
print f("%4d",a[i] [j] );
printf("\n");
}
2.程序修改
【答案】
(1)錯誤:第5行fun(int**a,int m)
正確:fun(int a[][M],Int m)
(2)錯誤:第9行 a[j][k]=k*j;
正確:a[j][k]=(k+1)*(j+1);
【評析】
第5行:第二個形參m是用戶輸入的維數,沒有別的名堂,第一個形參是為了指明在函數fun()中要產生的多維數組,"**a"是不能正確表示一個多維數組的,我們應當使用"int a[M][M]"。
第9行:循環體的內容是給m維的多維數組賦值,這個多維數組在列方向是由1開始的自然數,在行方向上是行首第一數的n倍數,顯然,"a[j][k]=k*j;"不符合題意,我們應當使用"a[j][k]=(k+1)*(j+1);"。
3.程序設計
已知學生的記錄由學號和學習成績構成,N名學生的數據已存入a結構體數組中。請編寫函數fun,函數的功能是:找出成績最高的學生記錄,通過形參返回主函數(規定只有一個最高分)。已給出函數的首部,請完成該函數。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
試題程序:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 10
typedef struct ss
{ char num[10];int s;} STU;
fun(STU a[],STU *s)
{
}
main()
{STU
a[N]= { {"A01",81}, {"A02",89}, {"A03",66}, {"A04", 87}, {"A05",77}, {"A06",90}, {"A07",79}, {"A08",61}, {"A09",80 }, {"A10",71 }},m;
int i;
elrser();
printf("***** The original data *****\n");
for (i=0;i<N;i++) printf(!'No=%s Mark=%d\n",a[i].num,a[i].s);
fun(a,&m);
printf("***** THE RESULT *****\n");
printfCThe top : %s, %d\n",m.num,m.s);
NON0( );
}
NON0( )
{\*本函數用于打開文件,輸入數據,調用函數,輸出數據,關閉文件。*/
FILE *rf, *wf;
STU a[N], m ;
Int i;
rf = fopen("bc09.in", "r,) ;
wf= fopen("bc09.out", "w") ;
for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s) ;
fun(a, &m) ;
fprintf (wf, "The top : %s, %d\n", m.num, re.s) ;
fclose(rf) ;
fclose(wf) ;
}
3.程序設計
【答案】
fun(STU a[],STU。s)
{ int i;
STU *m;
re=a;
for(i=1;i<N;i++)/*從前往后集順序比較a數組中的學生成績,并使m指針始終指向成績低的學生記錄*/
if(a[i].s>m[0].s) m=&a[i];
s[0].s=m[0].s;
strcpy(s[0].Num,m[0].num);/*將m指針中的學生學號復制給s數組中的學號變量*/
}
【評析】
從題目的要求來看,我們應建立一個循環來尋找成績最高的學生記錄。我們給出的參考函數中定義了一個指針存放學生記錄中的最高成績。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |