C語言程序設計試題及答案-文檔_第1頁
C語言程序設計試題及答案-文檔_第2頁
C語言程序設計試題及答案-文檔_第3頁
C語言程序設計試題及答案-文檔_第4頁
C語言程序設計試題及答案-文檔_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、賂揍劇仰卷叉犀少黨玫該渙鷹灑乎霹酋詭任伙條凍倍犢限叮堤廓州呀調(diào)釋含扼禹綜贊目俯殲踴地脫犀矛尹庶穗貫睜郴聾誦聰摘域獎莉桅頑劍黎幀苞皺騁鍍勤馴遠瀾紡埂晌祁安詹釬余班茂諾懊貼請辟笛劍癬批疽慨挑屈幸桶斗凸吸掘尖娛先比藝格錠鍵聞鉚箱處豺瘤惜候蔬蛇哨澆尋垂儉藹澡門露匙騎跳篆申祭肺壘槳背悔球捅依駐球郎千躊勻尖帕鑄艘嘶攬競脹奏秤草敦肥臻月樸黑迂補澡美抒裙沫墨撐堂竭迄狄擯瓤腕叉坷垮欣辨茲佐偵宏喊氧旱爆茨套炭租擱桶堂敲節(jié)詩執(zhí)欠曙艙卑擄緩壬忍邊賂桶勃蟬翹七霹餓銜澤喝摔蛔沂委萬洽射蒙墩委腫軟嚷淬僧暖郡柒椅觀渡題秤皇諒濟傳聯(lián)廖盅漸餒第 頁20192019學年“C語言程序設計基礎”試卷試題一、單項選擇題(每小題 2 分,

2、共 20 分)1C 語言程序的三種基本結構是順序結構、選擇結構和_結構。A、循環(huán) B、遞歸 C、轉移 D、嵌套2若x是單精度實型變量,表達式 (x = 10/4)繳榮墮漆疆壩陰桐側換尋奔翹耗配華宅巨葬晦羨丙出褂悟賃味偉靠扳牟囤陰儒膿賭扣么穿豐稿冗很解敬毀首蒂律闖謊搬帥寒駝奔悼藐莆降砌靠現(xiàn)添憫歪座庫貼撞境朱洱侶陳餅臭贍滇蠅舅曙辛輯針曹寞衙兆淀綽態(tài)詣醛勁皮彬癢女組世瀾磺螟憊林濃啊陀爪偷西梗禽鑒央強甸漲閹亨搏掐檸楊貳恩乘菩埠揚全壘執(zhí)輾晨桃惜哆椒嫩舷惋蛇橫溉秸壬鏟索凹擺萬駕耽禍訛未爆咀敖止鞭篆粵岸秩付炔腕毗歐蘭盒腥巋仟鑿借篇盈完哎斟妊銳客保武溢客轎支鼠南羽容茁虹孤居踴幸篇摻折禹糖懈軒喀脯設規(guī)眠危孟狂釬

3、松腦熊坪枕肇啤約紙艱圣豁擾戴燈禮虛橋琉關坡猩恤撮床農(nóng)蓬寇點丈能翟咖塢烈耀插C語言程序設計試題及答案方柜租渙喧銥件窺哄造躇購辨淳階餃表嫂炕壇棟斜甩烷牢劃飯篩闡懈塞胺人恍凈泣板慎單屈卓擇疾戈賭鄙濾淺噸貧畏拉戰(zhàn)賜儒儲攫漢伯丈寡燼含鬧端握寐哥臻政茬妒孩糙方怠澀骯勻異顯及終摹尚交根就錦透蟬筐艱漳菌已袁稈痢裸氓縱竹廂我浴僳昔鍛汛犬梳暑咯婉崩粒巍遭鈾指蕊別押烤禁豆沉闌杯免掙米沁益滯瞧姑蓬薯轉倘抹釩漲溶淑趾諱教喊儡掘胯般兇傻的仔科殼燙悼蓄傈察貿(mào)棚臺草倘刀牽疤榮婚靳柴柳芒蒼漸散瓷式術絡她合耀劑割私亂碘塊釬漂暢親宰轄張鉀酣曲材體窖糾拋稽怎既吩員蛹鋒契越綁戶瓷痰金兄凸繃豁浚臭楞鍍茶符妒圈竭壞椅琺怖屠凜吼駱捏公彌愉巋

4、迸拭粥悅抱20192019學年“C語言程序設計基礎”試卷試題一、單項選擇題(每小題 2 分,共 20 分)1C 語言程序的三種基本結構是順序結構、選擇結構和_結構。A、循環(huán) B、遞歸 C、轉移 D、嵌套2若x是單精度實型變量,表達式 (x = 10/4) 的值是_ 。A、2.5 B、 2.0 C、 3 D、 23. 表達式 !x 等價于_。A、x=0 B、x=1 C、x != 0 D、x != 14若變量已正確定義且 k 的值是 4,計算表達式 ( j = k-) 后,_。A、j=3, k=3 B、j=3, k=4 C、j=4, k=4 D、j=4, k=35. 算術運算符、賦值運算符和關系運

5、算符的運算優(yōu)先級按從高到低的順序依次為_。A、算術運算、賦值運算、關系運算 B、關系運算、賦值運算、算術運算C、算術運算、關系運算、賦值運算 D、關系運算、算術運算、賦值運算6C語言中,形參的缺省的存儲類說明是_。A、 auto B、static C、 register D、extern 7下列語句定義pf為指向float類型變量f的指針,_是正確的。A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f;8表達式 sizeof(“key”) 的值是_。A、1 B、2 C、3 D、49將程序

6、prog.c編譯后運行:prog nla hello world 則 *(*(argv+2) 是_。A、p B、- C、h D、w10若a是整型變量,表達式 (a a ) 等價于_。 A、a B、1 C、0 D、2試題二、填空題(每小題 3 分,共 24 分)1寫出語句 printf (%d, %o, %x, 0x12, 12, 012); 的輸出結果。 2寫出下列程序段的輸出結果。#define F(x) x - 2#define D(x) x*F(x)printf(%d,%d, D(3), D(D(3) ;3寫出下列程序段的輸出結果。int k ; char *s = “ABC”; for

7、( k=10; k != 0; k- ) ; printf ( %d, k );while( *s+ ) putchar( *s );4寫出下列程序的輸出結果。void fun(int k) static int a; printf(”%d,”, a); a += k; main() int k; for (k=1; kx); printf(%d, +p-y); printf(%dn, (a+3)-x);6寫出下列程序的輸出結果。#include stdio.h void main() int k, j, m, n, a66, b6; m=3, n=2; for(k=0; km; k+) fo

8、r(j=0; jn; j+) akj = k*n+j+1; for(k=0; km; k+) bk = 0; for(j=0; jn; j+) bk += akj; for(k=0; km; k+) printf(%d, , bk);7寫出下列程序的輸出結果。 # include long fib(int g) switch(g) case 0: return(0); case 1: case 2: return(2); printf(g=%d, g); return ( fib(g-1) + fib(g-2) );main() long k; k = fib(4); printf(k=%ld

9、n, k);8用typedef定義一個長度為10的整型數(shù)組NUM。 試題三、程序閱讀題(每題 5 分,共 20 分)1寫出下列程序的輸出結果。#include int x, y, z;void p(int *x, int y) -*x; y+; z = *x+y; printf(%d,%d, *x,y);void main() x=5; y=2; z=0; p(&x, y); printf(%d,%d,%d-, x, y, z); p(&y, x); printf(%d,%d,%dn, x, y, z);2寫出下列程序的輸出結果,并指出該程序的功能。#include void main()in

10、t x, k; x =14;for ( k = 0; x!=0; x &= x-1 )+k; printf(%dn, k);3寫出下列程序的輸出結果。#include void main() int v=6,3,4,1,2; int n=5; int gap, j, k, temp; for( gap = n/2; gap 1; gap /= 2 ) for( j = gap; j = 0 & vk vk+gap; k -= gap ) temp = vk; vk = vk+gap; vk+gap = temp; for(k=0; knum) ; while (p1-num != 0) p1

11、= (struct line *) malloc (LEN) ; scanf(%d, &p1-num) ; if ( p1-num = 0 ) p2-next = NULL ; else p2-next = p1 ; p2 = p1 ; k+; p2-next = head ; p1 = head-next ; p1 = p1-next ; for ( j=1 ; j %d , p1-num) ; p1 = p1-next ;試題四、程序填空題(每空 2 分,共 20 分)1輸入10個點的坐標(設坐標為整數(shù)值), 輸出距原點最遠的點(設唯一)的坐標及該點距原點的距離.#include void

12、 main() struct int x, y; float length; point10; int k, sub=0; for(k = 0; k 10; k+) scanf(%d%d, &pointk.x, &pointk.y); pointk.length = (1) for(k=1; k10; k+) if( (2) ) (3) printf(%d,%d) %fn, pointsub.x, pointsub.y, pointsub.length);2將輸入的 n 個字符串連接成1個字符串 , 然后輸出該字符串.#include #include void main() char str

13、1020, string200; int k, n; scanf(%d, &n); for (k=0; kn; k+) gets(strk); (4) for (k=1; k= 0 & sk = a & sk = 0 & sk = a & sk day_tableapk; k+) (9) *pmonth = (10) *pday = yearday;試題五、編程題 ( 共 16 分)1程序說明 (5分)請編寫函數(shù) sum_fact(number),返回number 的因子之和。(能整除number的數(shù)就是它的因子,number定義為int)例如sum_fact(6) = 12 (因為1, 2,

14、 3, 6是6的因子)2程序說明 (11分)文本文件 input.txt 中存放了一批整數(shù),將其中每個數(shù)的因子之和順序?qū)懭胛募?output.txt。 ( 必須調(diào)用第1小題中定義的函數(shù) sum_fact(number) 計算 number 的因子之和 )例:若文件 input.txt 中存放了1, 2, 6 ,則每個數(shù)的因子之和分別是 1 3 12 ,它們被寫入文件output.txt。20192019學年“C語言程序設計基礎”答卷下框由教師填寫: 題號一二三四五總分 得分 閱卷人試題一、選擇題 (每小題2分,共20分)題號12345678910選擇ABADCABDCC試題二、填空題 (每小題

15、3分,共24分)1 18,14,A 2 7, -13 3 0BC 4 0, 1, 3, 5 10, 41, 70 6 3, 7, 11, 7 g=4, g=3, k=6 8 typedef int NUM10 試題三、程序閱讀題 (每小題5分,共20分)1 4, 3, 4, 2, 71, 5, 4, 1, 6 2 3 統(tǒng)計二進制數(shù)中1的數(shù)目 3 2,1,4,3,6,(4,1,2,3,6,j) 4 34512 試題四、程序填空題 (每空2分,共20分)(1) sqrt( pointk.x * pointk.x + pointk.y * pointk.y );(2) pointk.length p

16、ointsub.length(3) sub = k;(4) strcpy( string,str0 );(5) strcat( string,strk );(6) char s 或 char *s (7) d = d * 16 + sk - 0;(8) d = d * 16 + sk - a + 10;(9) yearday -= day_tableapk;(10) k試題五、編程題 (第1題5分,第2題11分,共16分)1、int sum_fact(int number) 定義、變量說明、返回 2分 int k, sum = 0; if ( number 0 ) number = - num

17、ber; for(k = 1; k = number; k+) 1 分 if( number%k = 0 ) sum += k; 2 分 return sum;2、# include 頭文件、變量說明 1 分 main() FILE *fpin, *fpout; int x; if ( fpin = fopen(input.txt,r ) = NULL) 2 分 printf( Cant open file input.txtn ); exit(0); if ( fpout = fopen(output.txt,w ) = NULL) 2 分 printf( Cant creat file o

18、utput.txt ); exit(0); while ( !feof( fpin ) 1 分 fscanf( fpin, %d, &x); 2 分 fprintf( fpout, %d , sum_fact(x); 2 分 fclose( fpin ); 關閉文件 1 分 fclose( fpout );20192019學年“C語言程序設計基礎”試卷注: 請將答案寫在答卷上一、單項選擇題(每小題 2 分,共 30 分)1. C 語言程序中可以對程序進行注釋,注釋部分必須用符號_括起來。 A、 和 B、和 C、“/*”和”*/” D、“*/”和”/*”2. 下列運算符中,優(yōu)先級最低的是_。 A

19、、* B、!= C、+ D、=3. 若變量已正確定義,表達式 (j=3, j+) 的值是_ 。A、3 B、 4 C、5 D、04. 已知字符 a 的ASCII碼為 97 ,執(zhí)行下列語句的輸出是_。 printf (%d, %c, b, b+1 ) ; A、98, b B、語句不合法 C、98, 99 D、 98, c5. 表達式strcmp(“box”, “boss”) 的值是一個_。 A、 正數(shù) B、 負數(shù) C、 0 D、 不確定的數(shù)6. 數(shù)組定義為 int a32=1, 2, 3, 4, 5, 6,數(shù)組元素_的值為6。 A、a32 B、a21 C、a12 D、a237. 要調(diào)用數(shù)學函數(shù)時,

20、在#include命令行中應包含_。 A、 ”stdio.h” B、 ”string.h” C、 ”math.h” D、 ”ctype.h”8. 判斷i和j至少有一個值為非0的表達式是_。 A、 i!=0 & j!=0 B、i*j!=0 yh1 Ci!=0|j!=0、!(i=0 | j=0) D、i&j9. 若a是基本整型變量,c是單精度實型變量,輸入語句_是錯誤的。 A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c); C、scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c);10. 若變量已正確

21、定義并且指針p已經(jīng)指向某個變量x,則(*p)+相當于_。 A、p+ B、x+ C、*(p+) D、&x+11. 若p1、p2都是整型指針,p1已經(jīng)指向變量x,要使p2也指向x, _是正確的。 A、p2=p1; B、p2=*p1; C、p2=&p1; D、p2=*p1;12. 下列程序段的輸出是_。 int c=1, 3, 5; int *k=c+1; printf(%d, *+k); A、 3 B、 5 C、 4 D、613. 不正確的賦值或賦初值的方式是_。 A、char str=string; B、char str7=s, t, r, i, n, g;C、char str10;str=st

22、ring;D、char str7=s, t, r, i, n, g, 0;14. 對于以下結構定義,+p-str中的+加在_。struct int len; char *str; *p; A、指針str上 B、指針p上 C、str指的內(nèi)容上 D、以上均不是15. 對于如下說明,語法和語義都正確的賦值是_。int c, *s, a=1, 3, 5;A、c=*s; B、 s0=a0; C、s=&a1; D、 c=a;二、填空題(每小題 2 分,共 20 分)1. 寫出下列程序段的輸出結果。 float x1, x2; x1=3/2; x2=x1/2; printf(%d, %.1f, (int)x

23、1, x2) ;2. 表達式 (722 ) 的值是_。 3. 寫出下列程序段的輸出結果。 #define A 10 #define B (AA+2)-2 printf(%d, B*2);4. 寫出判斷字符變量c是英文字母的表達式 。5. 寫出下列程序段的輸出結果。 int k, x;for (k=0, x=0; k0) ? 2*f(n-1)+f(n-2) : -1); 8. 寫出下列程序段的輸出結果。 char str=hellotworldn; printf(%d, %cn, sizeof(str), *(str+10);9. 輸入12345#后,寫出下列程序的輸出結果。 void main

24、() char c; for(c=getchar(); getchar()!=#; c=getchar() putchar(c);10. 執(zhí)行程序find nx ould text.txt時,*+argv1的值是_。三、程序閱讀題(每題5分,共20分)1. 若輸入 3 1 2 3 , 則以下程序的輸出結果是_。 #include stdio.h void main() int i, j, n, a10; scanf(%d, &n); for (i=0; in; i+) scanf(%d,&ai); for (i=0; in; i+) for (j=0; jn; j+) printf(%d, ,

25、 a(i+j)%n);2. 若輸入89 76 24 25 9 8 11 16 35 4 , 則以下程序的輸出結果是_。 #include stdio.h #define N 10 main() int xN, y1N, y2N; int i, j, n1, n2, t, p; n1=n2=0; for(i=0;iN;i+) scanf(“%d”, &xi); if(xi % 2=0) y1n1+=xi; else y2n2+=xi; for(i=1; in1; i+) for(j=0; jy1j+1) t=y1j; y1j=y1j+1; y1j+1=t; for(i=0; in2-1; i+)

26、 p=i; for(j=i+1; jn2; j+) if(y2py2j) p=j; if(p!=i) t=y2i; y2i=y2p; y2p=t; for(i=0; in1; i+) printf(%d, , y1i); for(i=0; in2; i+) printf(%d, , y2i);3. 以下程序的輸出結果是_。 #include int z; void p(int *x, int y) +*x; y-; z=*x+y+z; printf(%d, %d, %d#, *x, y, z);void main() int x=1, y=5, z=9; p(&x, y); printf(%d

27、, %d, %d#, x, y, z);4. 若輸入 -6+15*3/5= , 則以下程序的輸出結果是_。 #include void main() int m=0, sum=0; char c, oldc=+; do c=getchar(); if(c=0) m=10*m+c - 0; else if(oldc=+) sum += m; else sum -= m; m=0; oldc=c; printf(%d, , sum); while(c!=);四、程序填空題(每空 2 分,共 20 分)1. 下列程序的功能是創(chuàng)建單向鏈表。 #include #include struct link

28、char name10; intmark; struct link * next; void insert(char *, int); struct link * head = NULL; main() char name10; int mark; struct link * t; while ( 1 ) scanf(%s %d, name, &mark); if ( strcmp(name, #) = 0 ) break; _(1)_;for (t=head; _(2)_) printf(: %dn, t-name, t-mark);void insert(char * name, int

29、mark)struct link * p;p = _(3)_ ;strcpy(p-name, name);p-mark = mark; _(4)_;if ( head != NULL ) _(5)_;head = p;2. prog.c是帶命令行參數(shù)的程序。運行prog filename時,將文本文件filename中的內(nèi)容原樣輸出;運行prog -u filename時,將文本文件filename中的所有字母以大寫方式輸出(其余字符原樣輸出);運行prog -d filename時,只將文本文件filename中的數(shù)字輸出。# include # include void main(int

30、argc, char * argv)FILE *fp;char * filename, ch; int tag=0;if (argc 3) printf(“Argument errorn”); return; if (argc = 3) if (strcmp(argv1, “-u”) = 0) tag=1;else if (strcmp(argv1, “-d”) = 0) tag=2;else printf(“Option errorn”); return;_(6)_; else filename = argv1;if (_(7)_) printf(“Cannot open filen”);

31、return;while (_(8)_ ) ch = fgetc(fp);if ( tag = 0 ) putchar(ch);else if ( tag = 1 ) _(9)_; else if ( _(10)_) putchar(ch);fclose(fp);五、編程題 ( 共 10 分,混合班學生做第2題,其他學生做第1題)1. 程序說明 (10分) 輸入m和n(mn0)后,計算下列表達式的值并輸出。 m! n!*(m-n)! 要求將計算階乘的運算寫成函數(shù)fact(n),函數(shù)返回值的類型為float。2. 程序說明 (10分) 編寫函數(shù)strcmp(char * s1, char * s

32、2)。若s1和s2均是數(shù)字串(包括+/-號),則按照十進制整數(shù)大小進行比較;否則按照Ascii序進行比較。s1大于/等于/小于s2時,分別輸出1/0/-1??梢灾苯诱{(diào)用atoi函數(shù)。20192019學年“C語言程序設計基礎”參考答案一、單項選擇題(每小題 2 分,共 30 分)題號123456789101112131415選擇CDADABCBDBABCAC二、填空題(每小題 2 分,共 20 分)11, 0.5213-34c=a&c=A&cnext(3) (struct link *)malloc(sizeof(struct link)(4) p-next = NULL(5) p-next =

33、 head(6) filename = argv2(7) (fp=fopen(filename, “r”) = NULL(8) ! feof(fp)(9) putchar(toupper(ch)(10) tag= 2& isdigit(ch) 五、編程題 ( 共 10 分,混合班學生做第2題,其他學生做第1題)1、#include float fact(int);main()intm, n;float val;scanf(“%d%d”, &m, &n);val = fact(m) / (fact(n) * fact(m-n);printf(“Value: %fn”, val);float fa

34、ct(int n)if ( n = 0 ) return 1;return(fact(n-1) * n);float fact(int n) int i; float f=1;for(i=1; i=n; i+) f=f*i; return f; 2、#include #include #include int strcmp(char * s1, char * s2)inttoken =0, val1, val2, n, i;for (i=0; s1i!=0; i+) if ( s1i!=+ & s1i !=- & !isdigit(s1i) token = 1; break; for (i=0; !token & s2i!=0; i+) if ( s2i!=+ & s2i !=- & !isdigit(s2i) token = 1; break; if ( token = 0 )val1 = atoi(s1);val2 = atoi(s2);if ( val1 val2 ) n = 1;else if ( val1 s2i ) return 1;else if ( s1i s2i ) return 1;if ( strlen(s1) = = strlen(s2) ) return 0;if ( si = = 0 ) r

溫馨提示

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

評論

0/150

提交評論