第一套上機(jī)試題
一、改錯(cuò)題
【分析】:改錯(cuò)題的錯(cuò)誤一般可分為兩類,一類是語法錯(cuò)誤,這類錯(cuò)誤可通過調(diào)試程序改正,較容易;另一類是邏輯錯(cuò)誤,這類錯(cuò)誤程序能運(yùn)行,但結(jié)果不正確,這類錯(cuò)誤相對(duì)較難,修改前必須要看懂和理解程序。
#include"stdio.h"
#define n 4 #define m 3 /*語法錯(cuò),#define m 3需另起一行*/
int a[n][m],s[m];
p(int j)/*此函數(shù)的功能為:找出a數(shù)組中第j列的最小元素的值及行號(hào),函數(shù)成功運(yùn)行后,i中即為j列的最小元素的行號(hào),s[j]中即為j列的最小元素的值*/
{int k,i,x;
x=a[0][j];i=0; /*邏輯錯(cuò),從函數(shù)的功能可知,a[0][j]也應(yīng)賦值給s[j],所以x=a[0][j]應(yīng)改為s[j]=x=a[0][j]*/
for(k=1;k if(a[k][j] {i=k;s[j]=x=a[k][j];} return i; } main() {int index[m],i,j,k; for(i=0;i for(j=0;j scanf("%d",a[i][j]);/*語法錯(cuò),但編譯時(shí)不會(huì)報(bào)錯(cuò),scanf語句的一般形式為scanf(格式控制,地址表列),所以a[i][j]應(yīng)改為&a[i][j])*/ for(j=0,j {index[j]=p[j]; printf("a[%d,%d]=%d\n",index[j],j,s[j]); } i=s[1];k=0; /*邏輯錯(cuò),數(shù)組s中存放的是a數(shù)組中每一列的最小值,比較時(shí)應(yīng)從數(shù)組的第0個(gè)元素開始,而下面的for循環(huán)是從第1個(gè)元素開始的,所以i=s[1]應(yīng)改為i=s[0]*/ for(j=1;j if(s[j]
{i=s[j];k=j;} printf("min=a[%d,%d]=%d",index[k],k,i); } 二、編程題 【分析】:本題的主要功能是建立一個(gè)3行8列的二維數(shù)組,并給其元素賦值,其中第1、2行的值可通過遞推公式xi+1=(25*xi+357)%1024得到,第三行的值取前兩行同列元素的最大公約數(shù),所以編程時(shí)可用一個(gè)函數(shù)來實(shí)現(xiàn)求公約數(shù)的算法。 #include #include #define n 8 /*函數(shù)gcd實(shí)現(xiàn)求最大公約數(shù)的算法*/ gcd(int a,int b) {int c; while(b!=0) {c=a%b;a=b;b=c;} return a; } main() {int i,j,x,a[3][n]; FILE *f; if((f=fopen("d:\\temp\\1\\myf2.out","w"))= =NULL) {printf("Create File myf2.out Failed!\n");exit(0);} x=26; /*下面二重for循環(huán)實(shí)現(xiàn)給第1、2行數(shù)組元素賦值的功能*/ for(i=0;i<2;i++) for(j=0;j {a[i][j]=x;x=(25*x+357)%1024;} /*下面for循環(huán)通過調(diào)用gcd函數(shù)實(shí)現(xiàn)給第3行數(shù)組元素賦值的功能*/ for(j=0;j a[2][j]=gcd(a[0][j],a[1][j]); /*下面for循環(huán)實(shí)現(xiàn)按題目所給格式輸出二維數(shù)組的功能*/ for(i=0;i<3;i++) {for(j=0;j fprintf(f,"\n"); } fclose(f); }
2010全國計(jì)算機(jī)等考二級(jí)C語言考前密卷匯總
2010年計(jì)算機(jī)等級(jí)考試二級(jí)C語言常見知識(shí)點(diǎn)
計(jì)算機(jī)等級(jí)考試二級(jí)C語言題型分析與應(yīng)試技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |