專升本C語言歷年考試題及答案_第1頁
專升本C語言歷年考試題及答案_第2頁
專升本C語言歷年考試題及答案_第3頁
專升本C語言歷年考試題及答案_第4頁
專升本C語言歷年考試題及答案_第5頁
免費預覽已結束,剩余6頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、專升本C語言歷年考試題及答案江西財經大學 2005年專升本選拔考試C語言程序設計試卷(考試時間120分鐘,總分100分)、用C語言描述下列命題(共16分,每小題2 分)1、 a、b和c均為整型變量,a和b中有一個大于c。2、 數學公式:亠八4ac的c語言表達式(注:sqrt()為開方函數)。2a3、寫出100內的自然數x,能被3或7整除的表達式。4、寫出判斷字符變量ch是阿拉伯數字字符的表達式。5、寫出滿足x<60或90< x< 100的C語言表達式。&寫出平面上的點(x,y)落在單位圓內的表達式。7、數組p10的各元素用于保存指向char型的指針,寫出該數組的定義。

2、8、有名為max的函數,其功能是對兩個int型參數x、y進行計算,返回其中的 較大者,寫出該函數的說明部分。、根據要求畫出流程圖或N - S圖(共10分,每小題5分)1、用流程圖或N-S圖表示以下算法。輸入x的值,按下列函數計算y的值,并輸出y的值2、畫出打印以下圖案的算法流程圖或 N-S圖。&&&& & && & & &三、程序閱讀題(共20分,每小題4 分)1、# in elude <>void main( ) int i,sum=0;for(i=1;i<=30;i+)if(i%3!=0) c

3、ontinue; else sum=sum+i;printf( “n”,sum);請敘述上面程序的功能,并寫出程序的運行結果2、void main( ) int a,b,x=1,y=1; scanf("%d%d",&a,&b); if (a>0) x=x+y; if (a<b) x=2*y; else if (a=b) y=5; else y=x+y; printf("x=%d,y=%dn",x,y);假設輸入為 : 2 -3<CR>, 則程序運行后的輸出結果為 :3、void main() int a33=2,4

4、,6,8,10,12,14,16,18; int sum=0, i, j;for ( i=0; i<3; i+) for ( j=0; j<3; j+ ) if (i=j) sum+=aij; printf( “sum=%dn”,sum) ; 請敘述上面程序的功能,并寫出程序的運行結果。4、void main( )int i=0; int x,s1,s2,s3; s1=s2=s3=0; while(i+<10) scanf("%d",&x); switch(abs(x)%3) case 0:s1+;break; case 1:s2+;break;

5、default:s3+; printf("s1=%d,s2=%d,s3=%d",s1,s2,s3); 請敘述上面程序的功能。5、int fun(int n) if(n=0) return 0; else if(n=1) return 1; return n*n+fun(n-1);void main() printf(“ Result is:%d ” ,fun(5);請敘述上面程序中 fun 函數的功能并寫出程序的運行結果四、程序填空(共28分,每空2分)1、以下函數用于求出一個3X4矩陣中的最小元素值。int min_value(int m3) int i, j, mi n

6、;min=m00;for (i=0;;i+)for (j=0 ;;j+)if ( <min) min= ;return( min );2、程序的功能是:從鍵盤輸入一串字符(以回車換行符結束),統計其中大寫英文字母的個數,將結果保存在變量count中。void mai n( )int coun t=0;char c;while(c!='n')if ();c=getchar();prin tf("have typed %d upper letters", coun t);3、 以下函數的功能是:在第一個循環中給前n個數組元素依次賦值1n;在第 二個循環中使

7、a數組的n個元素值對稱互換,變成n、n-1 ? ? ? 4 、3、2、1。void fun ( int a ,i nt n)int i;int temp;for(i=1; i<=n; i+) ai-1= i;for(i=0; i<n/2; i+) temp=;ai=;=temp;4、以下程序是實現如圖1所示圖案的打印。void mai n() int i,j,k;char ch;for(i=1,ch=:i<=:i+)for(j=1;j<=4-i;j+) putchar(' '); /*表示空格符 */for(k=1;k<=:k+)putchar(c

8、h);prin tf("n");A五、程序設計題BB d g6分)1、設一個三位數可以表示為abc,若其能滿足條件a3+b3+c3=abc,則稱其為水仙 花數,編程求出所有的水仙花數。(8分)2、編程求數列1+(1+2)+(1+2+3)+(1+2+.+10)的和并輸出。(8分)3、設有10個學生的信息,包括學號、姓名和三門功課的成績,試編寫學生信息 輸入函數、學生信息輸出函數、打印每一學生平均分函數,最后編寫主函數,并在主 函數中調用測試這些函數。(10分)專升本選拔考試C語言程序設計參考答案及評分標準一、用C語言描述下列命題(共16分,每小題2分)1、a>c|b&g

9、t;c2、(-b+sqrt(b*b-4*a*c)/(2*a)3、(x>=1 &&x<=100)&&(x%3=0|x%7!=0)4、ch>=' 0' &&ch<= 9'5、x<60|x>=90&&x<=1006、x*x+y*y<=17、char *p10;8、int max(int x,int y)二、根據要求畫出流程圖或N - S圖(共10分,每小題5分)1、2、t'''nx>=0TFx>0y=1 i=1=0y=-1程序閱讀

10、題(共20分,每小題4分)三、1、輸出功能2、輸出3、輸出功能4、功能5、輸出m=130內能被3整除的數的和su符求x=2,y=3si換行m=30求3*3矩陣對角線上元素之和。輸入10個數,分別求出其中能被1、2、3整除的數的和并打印。Result is:55fun 函數的功能:求12+22+.+n2四、程序填空(共28分,每空2分)1、2、3、4、i<3 j<4c=getchar() ai'A' aij aij c>='A' && c<='Z' count+ a n-i-1 a n-i-1 4 2*i-1

11、 ch+五、程序設計題(共26分,8+8+10)1、void mai n() int a,b,c;for(a=1;a<=9;a+)for(b=0;b<=9;b+)for(c=1;c<=9;c+) if(a*a*a+b*b*b+c*c*c=100*a+10*b+c) printf("%5d",100*a+10*b+c);2、#include <>void main()int i,s,sum=0;for(i=1,s=0;i<=10;i+) s=s+i; sum=sum+s;printf("Result is:%6d",su

12、m);3、#include <>#include <>定義描述學生的結構體類型 */成員變量num表示學號*/typedef struct /*int num; /* char name20; /* float score3; /*stud;void input(stud s,int n)int k;char t10;for (k=0; k<n; k+) printf("No:");gets(t); sk.num=atoi(t);printf("name:"); gets();printf("scor

13、e1=?"); gets(t); sk.score1=atof(t);printf("score2=?"); gets(t); sk.score2=atof(t);printf("score3=?"); gets(t); sk.score3=atof(t);void output(stud s,int n)int k;printf("%10s%20s%8s%8s%8sn","no","name","score1","score2","s

14、core3"); for (k=0; k<n; k+) printf("%10d",sk.num);printf("%20s",);printf("%",sk.score1);printf("%",sk.score2);printf("%n",sk.score3);void prin t_average(stud s,i nt n) _int k;prin tf("nn%10s%20s%12sn"," no"," n

15、ame","ave_score");for (k=0; k<n; k+) prin tf("%10d",sk. nu m);prin tf("%20s",sk. name);prin tf("%n",(sk.score1+sk.score2+sk.score3)/3);void mai n()stud st10;in put(st,3);output(st,3);prin t_average(st,3); _C語言與程序設計試題一、用C語言描述下列命題(共16分,每小題2分)1. x為整數,寫出x能

16、被3除盡,且被5除余2的判斷表達式。2寫出a、b之差的絕對值大于X、小于y的判斷表達式。3如圖所示電路中A=1表示開關合上(B,C也相同),寫出能使得燈亮的表達式4 把下列數學表達式轉換為 C語言表達式:5寫出判斷字符變量ch是阿拉伯數字符號的表達式。6. 定義一個枚舉類型 seas on描述一年的四個季節(spri ng, summer, autu mn, win ter )。7. 函數fun可以接收字符串的地址作為實際參數,計算后能夠返回一個字符指針, 寫出該函數的聲明。8. 有定義FILE fp;請寫出以只讀方式打開一個二進制文件的相關語句。二、根據要求畫出NS圖(共 5分求解使得不等式

17、1-(1/2)+(1/3)-+(1/N) > 3/5 成立的最小的N值并輸出。三、單項選擇題(共5分,每小題1分)1. 以下說法中正確的是()A. C語言程序總是從第一個定義的函數開始執行;B. C語言程序中至少有一個main函數;C. C語言程序總是從main函數開始執行;D. C語言程序中的main函數必須放在程序的開始部分;語言中,下列正確的敘述是 ( )A. C程序中的關鍵字必須小寫,其他標識符不區分大小寫B. C程序中的所有字母都不區分大小寫C. C程序中的所有字母都必須小寫D. 所有的C語言關鍵字必須小寫3. 已知 int i=10 ;表達式 20-5<=i<=9

18、 的值是( )A. 0 B. 1 C. 19 D. 204. 以下不正確的描述是 ( )A. break 語句不能用于循環語句和 switch 語句外的其它語句B. 在 switch 語句中使用 break 語句或 continue 語句的作用相同C. 在循環語句中使用 continue 語句是為了結束本次循環D. 在循環語句中使用 break 語句是為了使流程跳出循環體5. 對二維數組的正確說明是 ( )A. int a=1,2,3,4,5,6; B. int a2=1,2,3,4,5,6C. int a3=1,2,3,4,5,6; D. int a2,3=1,2,3,4,5,6四、程序閱讀

19、題(共 20 分, 每小題 4 分)1、#include <>void main() int i=15;while (i>0) if (-i%3!=2) continue;else printf("%d ",i); 程序運行后的輸出結果為 :2、#include <>int func(int n) if (n=0)return 0; else if (n=1) return 1; else return n*n+func(n-2);void main() printf("%5d%5dn",func(3),func(5); 程

20、序運行后的輸出結果為 :3、#include <> void main()int a,b,s,t;a=b=s=0, t=1;while(t<=4)t=t+1;switch(t%3)case 1: a=a+t; break;case 2: b=b+t; break; default: s=s+3;printf("a=%d,b=%d,s=%dn",a,b,s);程序運行后的輸出結果為 :4、#include <> #include <> int f1(int x) int y=0;static int z=2;y+=1; z+;retu

21、rn(x+y+z);void main() int x=1,i;char s110= “Visual ”,s210= “C+”,s10; for(i=0;i<3;i+)printf("%d ",f1(x); printf( “ n”);if(strcmp(s1,s2) strcpy(s,s1); puts(s); strcat(s2,s1) ; printf( “%d,%sn”,strlen(s2),s2);程序運行后的輸出結果為 :5、#include <> #define MAX 100 void main() int fMAX,i,j,k=2,m=5

22、;for(i=0;i<=m;i+)fi=1;fk-1=2; for(i=k;i<=m;i+) for(j=i-k;j<=i-1;j+) fi+=fj; printf("%d%5d%5dn",k,m,fm); 程序運行后的輸出結果為 :五、程序填空(共24分,每小題6分)1求10000內的完數,一個數所有因子的和與該數相等即為完數,如6=1+2+3,所以是完數。#in elude <>void mai n() int m,k,i,sum;for(m=6;m<=10000;m+) if(n %10=0) prin tf("n&quo

23、t;);;for(i=2;i<=;i+)if(m%i=0);if( sum=m ) printf("%d ",m); n+; 2、下面的函數sort按照交換排序的思想,實現對 n個整型數的非遞減排序。void sort(i nt p, int n) int i, j, t;for (i=1;i+)for (j=i;;j -)if (pj>=pj-1);else t=pj; pj=pj-1; pj-1=t; 3、#in clude <>void swap(i nt) int max, i, *q=p;for(i=1;i<4;i+)if(*q<

24、;*(p+i)q=p+i; max=*q;*q=*(p+3);*(p+3)=max;void mai n() int a34,i,j,*p=a0;for( i=0;i<3;i+ )for(j=0;j<4;j+)scanf( “%d”,p+);for( p=&a00;p<a0+12; )swap(p); ; for(i=0;i<3;i+) for(j=0;j<4;j+) printf(“ %3d” ,*p+);printf( “ n”); 4、設某單位將一商品四個季度的銷售數據以數字串的形式放在一數組中,下面的 程序實現對四個季度產品銷售額的求和,請在空處填上適當表達式。#include<>void main()char sales410= "","","1234","" ,*p4;int i, j, dec_dig;float sale, totle=0; for(i=0;i<4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論