吉大專業課(未知)-2015年
阿新 • • 發佈:2018-11-01
不知道是計算機還是軟體的、內容不全、回憶版:
一、蛇形螺旋矩陣的輸入輸出;20分
題目很模糊,我按照輸出x行y列的螺旋矩陣編寫:
#include<stdio.h> int main(){ int x,y; void screw(int x,int y); printf("輸入x y(以空格隔開):"); scanf("%d %d",&x,&y); screw(x,y); return 0; } void screw(int x,int y){// X行 * Y列的螺旋矩陣 int i,j,t=0;//t記錄第幾圈 int A[x][y];//用於儲存螺旋矩陣 int num=1; while(num <= x*y){ for(j=t;j<y-t&&num <= x*y;j++){//上排 A[t][j] = num; num++; } for(i=t+1;i<x-t&&num <= x*y;i++){//右排 A[i][j-1] = num; num++; } //printf("%d",i-1); for(j=y-t-2;j>=t&&num <= x*y;j--){//下排 A[i-1][j] = num; num++; } for(i=x-t-2;i>t&&num <= x*y;i--) {//左排 A[i][j+1] = num; num++; } t++; } for(i=0;i<x;i++){//列印輸出 for(j=0;j<y;j++) printf("%d\t",A[i][j]); printf("\n"); } }
二、字串內小寫字母的個數統計;統計字串中所含所有大小寫字母的個數。30分
解答:
(1)這道題讓我聯想到一個最基本的,求一個字串內每個字元的個數、先把這個寫出來,再介紹這道真題
#include<stdio.h> #define N 100 int main(){ void countLetter(char *str); char str[N]; printf("輸入一段字串:"); gets(str); countLetter(str); return 0; } void countLetter(char *str){ char count[N][2];//二維陣列,第一位 字元位,第二位 字元個數 ,記錄了每個字元與其出現的此數 int i,j,sign,len=0;//i,j用於遍歷,sign用於標誌是否需要新插入到count中,len表示當前count的長度 char str_s,count_s; for(i=0;(str_s=str[i])!='\0';i++){//遍歷字元陣列 sign = 0; for(j=0;j<len;j++){ if(str_s == count[j][0]){ count[j][1] ++; sign = 1;//標誌已經找到這個字元 break; } } if(sign == 0){//若在count陣列中沒找到這個字元,則填到count中, count[len][0] = str_s; count[len][1] = 1; len++; } } /*以下為列印輸出部分*/ for(i=0;i<len;i++){ printf("字元%c的個數有%d個\n",count[i][0],count[i][1]); } }
(2)對於本道題,只需將最後的列印輸出部分稍加修改,改成下列語句,就可以了:
int BigLetter=0,SmallLetter=0;
for(i=0;i<len;i++){
if(count[i][0]>='a' && count[i][0] <= 'z') SmallLetter++;
if(count[i][0]>='A' && count[i][0] <= 'Z') BigLetter++;
}
printf("大寫字母有%d個,小寫字母有%d個\n",BigLetter,SmallLetter);
(3)某年有道真題,讓輸出每一個小寫字母的個數,同樣修改列印輸出部分即可,準確說,只需添一句話:
for(i=0;i<len;i++){
if(count[i][0]>='a' && count[i][0]<='z')
printf("字元%c的個數有%d個\n",count[i][0],count[i][1]);
}
三、集合的輸入輸出;已輸入一個有M個元素的集合A,輸出含有N個元素的A的所有子集。30分
相關題:
(1)軟專2007的最後一題(http://mp.blog.csdn.net/postedit/79456981)
這道題讓求A的全部子集,詳細思路和程式碼請跳上面的連結
(2)一個讓求A的所有元素個數為2的子集,另一個讓求許多點構成的三角形的面積,相當於求集合A的所有元素個數為3的子集,結合本題,只需將n=2,n=3變為n=N,即可,詳細請看連結,不貼上去了
967-2014年第四題(http://blog.csdn.net/qq_21149391/article/details/79411106)
967-2015年第四題(http://blog.csdn.net/qq_21149391/article/details/79405192)