




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機二級C語言五套模擬卷及答案 模擬試題一一、選擇題(本大題30分,每小題2分)1.下列說法正確的是 。E)main函數必須放在C程序的開頭F)main函數必須放在C程序的最后G)main函數可以放在C程序的中間部分,但在執行C程序時是從程序開頭執行的H)main函數可以放在C程序的中間部分,但在執行C程序時是從main函數開始的2.在下面幾組數據類型中, 全為最常用的基本數據類型的是哪一組: 。 A)整型 實型 字符型 B)整型 數組 指針C)數組 結構體 共用體 D)指針 邏輯型 空類型3.若有說明語句:char c= 64 ; 則變量C包含: 。A)1個字符 B)2個字符 C)3個字符
2、 D)說明不合法,C值不確定4.設有如下定義和執行語句,其輸出結果為: 。 int a=3,b=3; a = -b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 35.C語言中,運算對象必須是整型數的運算符是 。 A)% B) C)% 和 D)*6.能正確表示x的取值范圍在0,100和-10,-5內的表達式是 。A)(x=-5)&(x=100)B)(x=-10)&(x=0)&(x=-10)&(x=0)&(x=100)D)(x=-5)&(x=100)7.程序段如下int k=0;while(k+=2); printf(last=%dn,k);則執
3、行結果是last= 。A)2 B)3 C)4 D)無結果8.下面有關for循環的正確描述是 。A)for循環只能用于循環次數已經確定的情況B)for循環是先執行循環體語句,后判斷表達式C)在for循環中,不能用break語句跳出循環體D)for循環的循環體語句中,可以包含多條語句,但必須用花括號括起來9.若二維數組a有m列,則aIj元素前的數組元素個數為: 。A)j*m+i B)i*m+j C)i*m+j-113 D)i*m+j+110.C語言中變量的指針指的是: 。A)變量類型 B)變量值 C)變量值 D)變量地址11.設有兩字符串“Beijing”、“China”分別存放在字符數組str1
4、10,str210中,下面語句中能把“China”連接到“Beijing”之后的為: 。A)strcpy(str1,str2);B)strcpy(str1, “China”);C)strcat(str1,“China”)D)strcat(“Beijing”,str2);12.以下程序的運行結果是: 。main( ) int a=2, i ; for(i=0;i3;i+) printf(“%4d”,f(a) ) ; f( int a) int b=0,c=3;b+; c+; return(a+b+c); A)7 10 13 B)7 7 7C)7 9 11 D)7 8 913.在C語言程序中,若未
5、在函數定義時說明函數類型,則函數默認的類型為: 。 A)void B)double C)int D)char14.在說明一個結構體變量時系統分配給它的存儲空間是 。E)該結構體中第一個成員所需存儲空間F)該結構體中最后一個成員所需存儲空間G)該結構體中占用最大存儲空間的成員所需存儲空間H)該結構體中所有成員所需存儲空間的總和15.使用fseek函數可以實現的操作是 。E)改變文件的位置指針的當前位置F)文件的順序讀寫G)文件的隨機讀寫H)以上都不對 二、判斷題(本大題10分,每小題1分)1、C程序可以由若干個源文件組成,因此最小的功能單位是源文件,最小編譯單位的是函數。( )2、C程序有三種結
6、構化程序設計方法,分別順序結構、選擇結構和循環結構。( )3、在if語句中,if子句與else子句都可以單獨使用,構成了if語句的兩種缺省形式。( )4、for語句作為循環控制語句時,其括號內各個表達式及其后的分號都可缺省。( )5、C程序中函數不可以嵌套定義但可以嵌套調用。( )6、字符串可以用來給數組賦值,在C程序的執行語句中可以直接用字符串給數組名賦值。 ( )7、數組名也可作為函數參數使用,此時數組名代表數組的起始地址。( )8、在函數內的復合語句中定義的變量在本函數范圍內有效。( )9、聲明一個結構體類型的一般形式為struct 結構體名 成員表列;。( )10、ANCI C規定了標
7、準輸入輸出函數庫,用fseek()函數來實現打開文件。( )三、程序填空題(本大題12分,每小題2分)1.下面程序可求出11000的自然數中所有的完數(因子和等于該數本身的數)請填空。main( ) int m, n, s;for(m=2;m1000;m+) _(1)_;for(n=1;n=m/2;n+)if(_(2)_) s+=n;if(_(3)_) printf(“%dn”, m); 2. 用起泡法對十個數由大到小排序。main( ) int a11, i, j, t; printf(“input 10 numbers: n”); for(i=1;i11;i+) scanf(“%d”,&a
8、i); printf(“n”); for (j=1;j=9;j+)for(i=1; _(1)_; i+)if (_(2)_)t=ai; ai=ai+1; _(3)_ ; printf(“the sorted numbers: n”); for ( i=1; i11; i+) printf(“%d”,ai);四、寫出下面程序的執行結果(本大題24分,每小題4分)1.#include main( ) char c=A+10-5;printf(“c=%cn”,c); 2.#include main( ) int a,b,c; a=1;b=2;c=3;if(ab)if(ac) printf(“%dn”
9、,a); else printf(“%dn”,b); printf(“overn”); 3. main( ) char a66, i, j; for(i=0;i6;i+) for(j=0;j6;j+) if ( ij )aij= #;else if(i=j) aij= ;else aij= * ; for(i=0;i6;i+) for(j=0;j6;j+) printf(“%c”,aij); printf(“n”);4.main( ) int i=2, x=5, j=7; fun (j,6); printf(“i=%d; j=%d; x=%dn”, i, j, x ) ; printf(“i=
10、%d; j=%d; x=%dn”, i, j, x) ;5. # include main ( ) int i, j; int p,q; i=2; j=10; p=&i; q=&j; p=10; q=2; printf(i=%d, j=%dn , i, j); 6. struct stru int x; char c; ;main( ) struct stru a=10, x,*p=&a; func (p); printf ( “%d,%c”, a.x, a.c); func (struct stru *b)b-x=20; b-c=y; 五、編程題(本大題24分,第一題7分,第二題8分,第三題
11、9分)1.把輸入的整數(最多不超過5位)按輸入順序的反方向輸出,例如,輸入數是12345,要求輸出結果是54321,編程實現此功能。2.編一程序,從鍵盤輸入10個整數并保存到數組,要求找出最小的數和它的下標,然后把它和數組中最前面的元素對換位置。3.編寫一個函數計算一個字符串的長度,輸入輸出在主函數內完成。(使用指針) 模擬試題二一、選擇題(本大題30分,每小題2分)1.C語言中不能用來表示整常數的進制是 。 A)十進制 B)十六進制 C)八進制 D)二進制2.C語言規定標識符由 等字符組成。A)字母 數字 下劃線 B)中劃線 字母 數字)字母 數字 逗號 )字母 下劃線 中劃線 3.若有如下
12、定義:int a=2,b=3; float x=3.5,y=2.5; 則表達式:(float)(a+b)/2+(int)x%(int)y的值是 。A)2.500000 B)3.500000 C)4.500000 D)5.0000004.以下表達式: 2+a+i*f, 其中i為整型變量,f為float型變量,則表達式的最終數據類型為 。A)int B)float C)char D)double 5.有如下語句: printf(“%s,%5.3sn”,“COMPUTER”,“COMPUTER”);執行語句后的最終結果為 。A)COMPUTER ,CMP . B)COMPUTER, CMP.C)CO
13、MPU, CMP. D)COMPU, CMP .6.以下if語句中語法錯誤的是 。A)if (ab)printf(“%f”,a); B)if(ab)printf(“%f”,a);else printf(“%f”,b);C)if(ab)printf(“%f”,a) D)if(ab)printf(“%f”,b);else printf(“%f”,b); else printf(“%f”,a);7.能表示整數x符合下面兩個條件的語句是 。(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4=0&x%100!=0)|x%400=0B)(x%4=0|x%100!=0
14、)&x%400=0C)(x%4=0&x%400!=0)|x%100=0D)(x%100=0|x%4!=0)&x%400=08.循環語句中的for語句,其一般形式如下:for(表達式1;表達式2;表達式3) 語句其中表示循環條件的是 。A)表達式1 B)表達式2 C)表達式3 D)語句9.以數組作為函數的參數時傳遞的數組的首地址,那么實參數組與形參數組之間的數據傳遞方式為 。A)地址傳遞 B)單向值傳遞 C)雙向值傳遞 D)隨機傳遞10.將字符串str2連接到字符串str1中應使用 。A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,st
15、r2) D)strcat(str2,str1)11.若有以下定義:int a10,*p=a; 則*(p+3)表示的是 。A)元素a3的地址 B)元素a3的值C)元素a4的地址 D)元素a4的值12.若有如下語句: int *p1,*p2; 則其中int所指的是 。A)p1的類型 B)*p1和*p2的類型 C)p2的類型 D)p1和p2所能指向變量的類型13.若有如下說明:int a10=1,2,3,4,5,6,7,8,9,10;char b=a,d,e;則數值為4的表達式是 。A)a4 B)ad-b C)ad-b D)ae-b14.有如下程序段,在Turbo C環境下運行的結果為 。main(
16、 ) int i=2,p,k=1; int f(int a,int b) p=f(i,+k); int c; printf(“I=%d,p=%d”,k,p); if(ab) c=1; else if (a=b) c=0; else c=-1; return(c); A)1,0 B)2,0 C)2,-1 D)1,115.若fp是指向某文件的指針,且已讀到此文件末尾,則庫函數feof(fp)的返回值是 。 A) EOF B) 0 C) 非零值 D) NULL二、判斷題(本大題10分,每小題1分)1.在每個C語言的程序中都必須并且只能有一個main函數。( )2.在C語言中,整型數據與字符型數據在任
17、何情況下都可以通用。( )3.在C語言程序中,AHP和ahp分別代表兩個不同的標識符。( )4. 在if語句中,不可以沒有else子句。( )5.C語言規定,簡單變量做實參時,與其對應的形參之間是單向的值傳遞。( )6. for語句作為循環控制語句時,括號內的分號是用來分開表達式的,因此要根據需要加分號。( )7. 數組名也可作為函數參數使用,此時是地址傳遞。( )8. C程序有三種結構化程序設計方法,分別嵌套結構、選擇結構和循環結構。( )9.數組在定義時沒有必要指定數組的長度,其長度可以在程序中根據元素個數再決定。( )10.在定義指針型變量時指定的基類型為該指針變量所能指向的變量類型。(
18、 )三、程序填空題(本大題12分,每小題2分)1.輸入3個實數 a, b, c要求按從大到小的順序輸出三數.main( ) float a,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if (ab) t=a; (1) ; b=t; if( (2) ) t=a; a=c; c=t; if(bc) (3) b=c; c=t;printf(“%f,%f,%f”,a,b,c);2.打印以下楊輝三角形.(要求打印出10行) main( ) int a1010,i, j ; 1 for( i=0;i10;i+) 1 1 (4) (5) 1 2 1for( i=2; i10; i+
19、 ) - 1 3 3 1 for(j=1; ji ; j+ ) 1 4 6 4 1 aij = (6) ; for(i=0; i10; i+) for( j=1; j=i; j+) printf(“%5d”,aij); printf(“n”); 四、寫出下面程序的執行結果(本大題24分,每小題4分)1.main( ) int a34=1,2,3,4,5,6,7,8,9,10,11,12, b43; int i, j; for (i=0;i3;i+ )for (j=0;j4;j+ ) bji=aij; for ( i=0;i4;i+ ) for ( j=0;j3;j+ ) printf( “%5
20、d”,bij ); printf( “n” ); 2.main( ) int a21,i,j,n=0; for(i=2;i20;i+ )ai=i;for ( i=2;i10;i+ )if (ai=0) continue; for (j=i+1;j=20;j+) if (aj%ai=0) aj=0;for ( i=2;i=20;i+ ) if (ai!=0) printf(“%4d”,ai); n=n+1; if (n%4=0) printf(“n”);3. float fac(int n) float f ; if(n0)printf(“n2);printf(%dn,j);5. # inclu
21、de main ( ) int p; p=&i; p=2; p+; p=5; printf(%d, p); p; printf(%dn , p); 6. #include void f(int c) int a=0; static int b=0; a+; b+; printf(%d: a=%d, b=%dn, c, a, b);void main(void) int i; for (i=1; i=3; i+) f( i );五、編程題(本大題24分,第一題7分,第二題8分,第三題9分)1.已知三角形的三邊長,試編程求三角形的面積. 要求:三邊長從鍵盤輸入,要考慮數據輸入是否正確,能否構成三角
22、形等情況.假設三邊分別為: a, b, c, s=1/2 (a+b+c), area= s(s-a)(s-b)(s-c)2.有一分數序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13, 試編程求數列前20項的和.3. 輸入10個學生的成績,分別用函數實現: (1)求平均成績;(2)按分數高低進行排序并輸出。 模擬試題三一、選擇題(本大題30分,每小題2分)1.下列有關C程序的說法中,正確的是: 。A)一個C程序中只能有一個主函數且位置任意;B)一個C程序中可有多個主函數且位置任意;C)一個C程序中只能有一個主函數且位置固定;D)一個C程序中可以沒有主函數。2.以下敘述中不正確
23、的是: 。A)在C程序運算符中,逗號運算符優先級最低;B)C程序中,AHP和ahp代表兩個不同的變量;C)C程序中,整數和實數在內存中存放形式相同;D)在C程序中, %是只能用于整數運算的運算符.3.已知ch是字符型變量,下面不正確的賦值語句是: 。 A)ch=0 B)ch=a+bC)ch=7+9 D)ch=7+94.設有如下定義int x=10,y=5,z;則語句printf(%dn,z=(x+=y,x/y);的輸出結果是 。A)1 B)0 C)4 D)35.設有如下定義:char ch=z,則執行下面語句后變量ch是值為: 。ch=(A=ch&chy|xz) z=x; x=y; y=z;A
24、)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5012.下面程序段的運行結果是: 。 x=y=0; while(x15) y+, x+=+y; printf(“%d, %d”, y, x);A)20, 7 B)6, 12 C)20, 8 D)8, 20 13.若有語句 int *point , a =45; point = &a; 下面均代表同一變量地址的一組選項是: 。A)&a point *&a B)&*a &a *point C)point &point &a D) &a, &*point p
25、oint 14.以下程序的運行結果是: 。main( ) int a=2, i ; for(i=0;i3;i+) printf(“%4d”,f(a) ) ; f( int a) int b=0; static int c=3b+; c+; return(a+b+c); A)7 10 13 B)7 7 7C)7 9 11 D)7 8 915.若有如下定義: int a33=1,2,3,4,5,6,7,8,9,i ; 則下列語句的輸出結果是: 。for (i=0;ia&chz) ((2));printf(”%cn”,ch); 2. 以下程序是求矩陣a , b的和,結果存入矩陣c中并按矩陣形式輸出。
26、請填空: main( ) int a34 = 7, 5, -2, 3 , 1, 0, -3, 4 , 6, 8, 0, 2 ; int b34 = 5, -1, 7, 6 , -2, 0, 1, 4 , 2, 0, 8, 6 ; int i, j, c34; for ( i=0; i3; i+ )for ( j=0; j4; j+ ) cij = _(3)_ ; for ( i=0; i3; i+ ) for ( j=0; j4; j+ ) printf ( “%3d”, cij ) ; _(4)_ ; 3.以下程序使用遞歸法求n!,請填空:float fac( int n) float f;
27、 if(n0) printf(“n0” data error); f=-1; else if(n=0|n=1) f=1; else f= (5) ;return( f ); main( ) int n; float y;printf(“input a integer number”);scanf(“%d”,&n);y= (6);printf(“%d! = %15.0f”, n, y ); 四、寫出下面程序的執行結果(本大題24分,每小題4分)1.main( ) float a=3.14, b=3.14159; printf(“%f, %5.3fn”,a,b); 2.main( ) char a
28、55,i,j; for(i=0;i5;i+)for(j=0;j5;j+)if(i=0 |i+j=4) aij=*;else aij= ; for(i=0;i5;i+)for(j=0;j5;j+) printf(%c,aij);printf(n); 3.main( ) int x, i ; for( i=1,x=1; i=10) break;if(x%2=1) x+=5;continue;x - = 3;printf(“%dn”, i ); 4.func( int x, int y) int z; z=a+b;return(z); main( ) int a=6, b=7, c=8, r; r=
29、func( ( a-, b+, a+b), c-) printf(“%d”, r) ; 5.#include void increment(void);void main(void) increment(); increment();void increment(void) static int x = 8; x +; printf(x = %dn, x);6. #include void main(void) static char a=ABCDEFGH,b=abCDefGh;char *p1,*p2;int k;p1=a; p2=b;for(k=0;k=7;k+) if (*(p1+k)=
30、*(p2+k) printf(%c,*(p1+k); printf(n); 五編程題(共30分)1.有一函數,其函數關系如下,試編程求對應于每一自變量的函數值。 x2 (x0) y = -0.5x+10 (0 x5?4:24.已知變量C1為字符型變量,下面不正確的賦值語句是: 。A)C1 = abc B)C1= 0C)C1 = 7+ 9 D)C1= 7 + 95.以下程序的輸出結果是: 。(注:表示空格)main( ) printf(“n*s1=%8s*”, “china”); printf(“n*s2=%-5s*”, “chi”) ; A)*s1=china * B)*s1=china *
31、*s2=chi* *s2=chi *C)*s1= china* D)*s1= china* *s2= chi * *s2=chi *6.設a、b和c是int型變量,且a=2,b=4,c=6,則下面表達式中值為0的是: 。A)a+ b B)a=bC)a|b+c&b-c D)!( (ay|xz) z=x; x=y; y=z;A)x=10, y=20, z=30 B)x=20, y=30, z=30C)x=20, y=30, z=10 D)x=20, y=30, z=208.下列字符串賦值語句中,不能正確把字符串C program賦給數組的語句是: 。A)char a1=C, , p, r, o,
32、g, r, a, m B)char a210; strcpy(a2, “C program”);C)char a310; a3= “C program”;D)char a410= “C program”9.用scanf函數輸入一個字符串到數組str中,下面正確的語句是: 。A)scanf(“%s”,&str); B)scanf(“%c”,&str10);C)scanf(“%s”, str) ; D)scanf(“%s”,str10);10.C語言規定,C程序的各函數之間 。A)允許嵌套調用,但不允許嵌套定義;B)不允許嵌套調用,但允許嵌套定義;C)不允許嵌套調用,也不允許嵌套定義;D)允許嵌套
33、調用,也允許嵌套定義;。11.若有如下定義和語句: char s12= “a_book!”; printf(“%d”,strlen(s) );則輸出結果是: 。A)12 B)10 C)7 D)612.下面程序的運行結果是: 。#include main( ) int y=10; do y-; while(-y) ; printf(“%dn”,y-); A)-1 B)1 C)8 D)013.下面函數調用語句中實參的個數為: 。func(exp1,exp2),(exp3,exp4,exp5)A) 1 B) 2 C) 4 D) 514.有如下語句 int a=10,b=20,*p1,*p2; p1=
34、&a; p2=&b; 如圖1所示;若實現如圖2所示的存儲結構,可選用的賦值語句是: 。p1 p2 p1 p2 a b a b 10 20 10 20 圖1 圖2A)*p1=*p2 B)p1=p2 C)p1=*p2 D)*p1=p215.以下對結構體類型變量的定義中不正確的是 。B)#define STUDENT struct student B) struct student STUDENT int num; int num; float age; float age; std1; std1;C) struct D) struct int num; int num; float age; fl
35、oat age; student; std1; struct student std1;二、判斷題(本大題10分,每小題1分)-1.在每個C文件中都必須并且只能有一個main函數。( )2. 在C語言中,整型數據與實型數據在任何情況下都可以通用。( )3. 在C語言程序中,happy是正確的標識符。( )4.在if語句中,if子句與else子句都可以單獨使用,構成了if語句的兩種缺省形式。( )5. C語言規定,簡單變量做實參時,與其對應的形參之間是雙向的值傳遞。( )6.數組在定義時要求指定數組類型,數組名及數組長度,其中表示數組長度的表達式可以是任意類型的常量表達式。( )7.在發生函數調用時,主被調函數中的參數可以是簡單變量,也可以是數組名,當采用數組名作為參數時其數據傳遞方式為單向值傳遞。( )8.C語言的一個重要特點是能夠直接處理物理地址,其指針類型數據就是用來存放變量地址的。( )9.字符串是C語言中一種基本數據類型,字符串總是以n作為結束標志。( )10.C程序的三種結構化程序設計方法分別順序結構、選擇結構和循環結構,由這三種結構組成的程序可以解決任何復雜的問題。( )三、程序填空題(本大題12分,每小題2分)1.下面程序的功能是利用函數調用求兩整數的最大公約數和最小公倍數,請填空。 main( ) int a,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家樂福員工管理制度
- 家庭健康卡管理制度
- 應天門地攤管理制度
- 張貼型看板管理制度
- 影劇院衛生管理制度
- 微基金運營管理制度
- 心理室使用管理制度
- 快遞員公司管理制度
- 急診手術間管理制度
- 總務處樓長管理制度
- 2023版浙江評審衛生高級專業技術資格醫學衛生刊物名錄
- 天津地理會考知識要點精華版
- GB/T 1689-1998硫化橡膠耐磨性能的測定(用阿克隆磨耗機)
- GB/T 16823.3-2010緊固件扭矩-夾緊力試驗
- 江蘇省金陵中學2023學年物理高一下期末調研試題(含答案解析)
- 2023年合肥城建發展股份有限公司校園招聘筆試模擬試題及答案解析
- DB11-T1834-2021 城市道路工程施工技術規程高清最新版
- 廣東省珠海市2022-2023高一物理下學期期末學業質量檢測試題
- 小學語文擴句、縮句專題
- PDCA降低I類切口感染發生率
- 人類能源史課件
評論
0/150
提交評論