① 求江蘇省計算機二級c語言考試真題及答案解析!!
2010-2018年江蘇省高校二級C考題剖析匯總以及編程題預測題(素數、特殊數、矩陣和常用十種典型自編函數匯集等)http://www.docin.com/search.do?nkey=%E5%BC%A0%E6%9F%8F%E9%9B%84&searchcat=1001&dt=1&fnorePage=¤tPage=1
② 求浙江省計算機二級C語言歷年的真題以及答案
2010年春浙江省高等學校 計算機等級考試試卷 ( 二級 C ) 一、程序閱讀與填空(24小題,每小題3分,共72分) 1. 閱讀下列程序說明和程序,在每小題提供的若干可選答案中,挑選一個正確答案。 【程序說明】 輸入一個整數,求它的各位數字之和及位數。例如,17的各位數字之和是8,位數是2。 運行示例: Enter an integer:-153 sum = 8, count = 3 【程序】 #include <stdio.h> main() { int count = 0, in, sum = 0; printf("Enter an integer:"); scanf("%d", &in); if( (1) ) in = -in; do{ sum = sum + (2) ; (3) ; count++; }while( (4) ); printf("sum = %d, count = %d\n", sum, count); } 【供選擇的答案】 (1) A、in == 0 B、in > 0 C、in != 0 D、in < 0 (2) A、in /10 B、in mod 10 C、in % 10 D、in (3) A、in = in % 10 B、in /10 C、in = in /10 D、in % 10 (4) A、in % 10 != 0 B、in != 0 C、!in D、in / 10 != 0 2. 閱讀下列程序說明和程序,在每小題提供的若干可選答案中,挑選一個正確答案。 【程序說明】 輸出50到70之間的所有素數。要求定義和調用函數isprime(m)判斷m是否為素數,若m為素數則返回1,否則返回0。素數就是只能被1和自身整除的正整數,1不是素數,2是素數。 運行示例: 53 59 61 67 【程序】 #include <stdio.h> #include <math.h> main() { int i; int isprime(int m); for(i = 50; i <= 70; i++) if( (5) ) printf("%d ", i); } int isprime(int m) { int i, k; (6) k = (int)sqrt((double)m); for(i = 2; i <= k; i++) if(m % i == 0) (7) ; (8) ; } 【供選擇的答案】 (5) A、isprime (m) != 0 B、isprime (i) != 0 C、isprime (m) == 0 D、isprime (i) == 0 (6) A、if(m != 1) return 1; B、if(m == 1) return 0; C、; D、if(m == 1) return 1; (7) A、return 0 B、return 1 C、return i <= k D、return (8) A、return 1 B、return 0 C、return D、return i <= k 3 . 閱讀下列程序說明和程序,在每小題提供的若干可選答案中,挑選一個正確答案。 【程序說明】 輸入6個整數,找出其中最小的數,將它和最後一個數交換,然後輸出這6個數。要求定義和調用函數swap(x, y),該函數交換指針x和y所指向單元的內容。 運行示例: Enter 6 integers: 6 1 8 2 10 97 After swaped: 6 97 8 2 10 1 【程序】 void swap(int *x, int *y) { int t; (9) ; } main() { int i, index, a[10]; for(i = 0; i < 6; i++) scanf("%d", &a[i]); (10) ; for(i = 1; i < 6; i++) if(a[index] > a[i]) (11) ; (12) ; printf("After swaped:"); for(i = 0; i < 6; i++) printf("%d ", a[i]); printf("\n"); } 【供選擇的答案】 (9) A、t = *x, *x = *y, *y = t B、t = x, x = y, y = t C、*t = *x, *x = *y, *y = *t D、&t = x, x = y, y = &t (10)A、index = 0 B、index = 5 C、index = index D、index = 1 (11)A、a[index] = a[i] B、i = index C、a[i] = a[index] D、index = i (12)A、swap(a[index], a[5]) B、swap(*a[index], *a[5]) C、swap(a[*index], a[*5]) D、swap(&a[index], &a[5]) 4. 閱讀下列程序並回答問題,在每小題提供的若干可選答案中,挑選一個正確答案。 【程序】 #include <stdio.h> #define T(c) (((c) >= '0') && ((c) <= '9') ? (c) - '0' : -1) void f1(char ch) { switch(ch){ case '0': printf("0"); case '1': printf("1"); case '2': printf("2");break; case '3': printf("3"); default: printf("9"); } printf("\n"); } double f2() { return (double)(5/2); } double f3(int n) { if(n == 1) return 1.0; else return 1.0 + 1.0/f3(n-1); } main() { printf("%d %d\n", T('7'), T('a')); f1('1'); printf("%.1f\n", f2()); printf("%.3f\n", f3(4)); } 【問題】 (13) 程序運行時,第1行輸出 (13) 。 A、7 -1 B、-1 7 C、7 a D、-1 -1 (14) 程序運行時,第2行輸出 (14) 。 A、1239 B、12 C、1 D、9 (15) 程序運行時,第3行輸出 (15) 。 A、2.5 B、2 C、2.0 D、3 (16) 程序運行時,第4行輸出 (16) 。 A、1.000 B、2.000 C、1.500 D、1.667 5. 閱讀下列程序並回答問題,在每小題提供的若干可選答案中,挑選一個正確答案。 【程序】 程序1 #include <stdio.h> main() { int i, j, t, a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; for(i = 0; i < 3; i++) for(j = 0; j <= i/2; j++){ t = a[i][j], a[i][j] = a[i][3-j], a[i][3-j] = t; } printf("%d\n", a[0][1]); printf("%d\n", a[2][2]); } 程序2 #include <stdio.h> main() { char str[10] = "27"; int i, number = 0; for(i = 0; str[i] != '\0'; i++) if(str[i] >= '0' && str[i] <= '7') number = number * 8 + str[i] - '0'; printf("%d\n", number); for(i = 0; str[i] != '\0'; i++) if(str[i] >= '0' && str[i] <= '5') number = number * 6 + str[i] -'0'; printf("%d\n", number); } 【問題】 (17) 程序1運行時,第1行輸出 (17) 。 A、3 B、4 C、1 D、2 (18) 程序1運行時,第2行輸出 (18) 。 A、12 B、11 C、10 D、9 (19) 程序2運行時,第1行輸出 (19) 。 A、2 B、27 C、23 D、16 (20) 程序2運行時,第2行輸出 (20) 。 A、19 B、140 C、147 D、2 6 閱讀下列程序並回答問題,在每小題提供的若干可選答案中,挑選一個正確答案。 【程序】 #include <stdio.h> main() { int i, j; char ch, *p1, *p2, *s[4]={"four","hello","peak","apple"}; for(i = 0; i < 4; i++){ p1 = p2 = s[i]; ch = *(p1 + i); while(*p1 != '\0'){ if(*p1 != ch){ *p2 = *p1; p2++; } p1++; } *p2 = '\0'; } for(i = 0; i < 4; i++) printf("%s\n", s[i]); } 【問題】 (21) 程序運行時,第1行輸出 (21) 。 A、our B、four C、fur D、fou (22) 程序運行時,第2行輸出 (22) 。 A、ello B、hllo C、heo D、hell (23) 程序運行時,第3行輸出 (23) 。 A、peak B、eak C、pek D、pak (24) 程序運行時,第4行輸出 (24) 。 A、pple B、apple C、ale D、appe 二、程序編寫 (每小題14分,共28分) 1.編寫程序,輸入100個整數,將他們存入數組a,求數組a中所有奇數之和。 2.按下面要求編寫程序: (1)定義函數total(n)計算 ,函數返回值類型是int。 (2)定義函數main(),輸入正整數n,計算並輸出下列算式的值。要求調用函數total(n)計算 。 計算機等級考試參考答案(二級 C ) 一、程序閱讀與填空 (24小題,每小題3分,共72分) ⑴ D ⑵ C ⑶ C ⑷ B ⑸ B ⑹ B ⑺ A ⑻ A ⑼ A ⑽ A ⑾ D ⑿ D ⒀ A ⒁ B ⒂ C ⒃ D ⒄ D ⒅ C ⒆ C ⒇ B (21)A (22)B (23)C (24)D 二、程序編寫 (每小題14分,共28分) 1. #include <stdio.h> void main() { int a[100], i, s=0; for(i = 0; i < 100; i++) { scanf("%d", &a[i]); if(a[i] % 2 == 1) s = s + a[i]; } printf("%d\n", s); } 2. #include <stdio.h> int total(int n) { int i, s = 0; for(i = 1; i <= n; i++) s = s + i; return s; } void main() { int i, n; float s = 0; scanf("%d", &n); for(i = 1; i <= n; i++) s = s + 1.0 / total(i); printf("%f\n", s); }
③ 求全國計算機等級考試二級C語言的真題
09年3月全國計算機等級考試二級C筆試真題(附答案)(考試時間90分鍾,滿分100分)一、選擇題(1)下列敘述中正確的是 A) 棧是先進先出(FIFO)的線性表B) 隊列是先進先出(FIFO)的線性表C) 循環隊列是非線性結構D) 有序線性表既可以採用順序存儲結構,也可以採用鏈式存儲結構(2)支持子程序調用的數據結構是 A) 棧 B) 樹 C) 隊列 D)二叉樹(3)某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是 A)10 B)8 C)6 D)4(4)下列排序方法中,最壞情況下比較次數最少的是 A)冒泡排序 B)簡單選擇排序 C)直接插入排序 D)堆排序(5)軟體按功能可以分為:應用軟體、系統軟體和支撐軟體(或工具軟體)。下面屬於應用軟體的是 A)編譯軟體 B)操作系統 C)教務管理系統 D)匯編程序(6)下面敘述中錯誤的是A)軟體測試的目的是發現錯誤並改正錯誤B)對被調試的程序進行「錯誤定位」是程序調試的必要步驟C)程序調試通常也稱為DebugD)軟體測試應嚴格執行測試計劃,排除測試的隨意性(7)耦合性和內聚性是對模塊獨立性度量的兩個標准。下列敘述中正確的是 A)提高耦合性降低內聚性有利於提高模塊的獨立性B)降低耦合性提高內聚性有利於提高模塊的獨立性C)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度D)內聚性是指模塊間互相連接的緊密程度(8)資料庫應用系統中的核心問題是A)資料庫設計 B)資料庫系統設計C)資料庫維護 D) 資料庫管理員培訓(9)有兩個關系R,S如下:R SA B C A Ba 3 2 a 3b 0 1 b 0c 2 1 c 2 由關系R通過運算得到關系S,則所使用的運算為A) 選擇 B)投影 C) 插入 D)連接(10)將E-R圖轉換為關系模式時,實體和聯系都可以表示為A) 屬性 B)鍵 C) 關系 D) 域(11)以下選項中合法的標識符是 A) 1-1 B)1—1 C)-11 D)1--(12)若函數中有定義語句:int k;,則 A)系統將自動給k賦初值0 B)這時k中值無定義 C)系統將自動給k賦初值-1 D)這時k中無任何值(13)以下選項中,能用作數據常量的是 A)o115 B) 0118 C)1.5e1.5 D) 115L(14)設有定義:int x=2; ,以下表達式中,值不為6的是A) x*=x+1 B) x++,2*x C)x*=(1+x) D)2*x,x+=2(15)程序段:int x=12; double y=3.141593; printf(「%d%8.6f」,x,y);的輸出結果是A)123.141593 B)12 3.141593 C)12,3.141593 D)123.141593(16)若有定義語句:double x,y,*px,*py,執行了px=&x, py=&y;之後,正確的輸入語句是 A)scanf(「%f%f」,x,y); B) scanf(「%f%f」,&x,&y); C) scanf(「%lf%le」,px,py); D) scanf(「%lf%lf」,x,y);(17)以下是if語句的基本形式:if (表達式) 語句,其中表達式A)必須是邏輯表達式 B)必須是關系表達式C)必須是邏輯表達式或關系表達式 D)可以是任意合法的表達式(18)有以下程序#include <stdio.h>main(){int x;</p><p>scanf(「%d」,&x);</p><p>if(x<=3); else</p><p>if(x!=10) printf(「%d\n」,x);</p><p>}程序運行時,輸入的值在哪個范圍才會有輸出結果A)不等於10的整數 B)大於3且不等於10的整數C) 大於3或等於10的整數 D)小於3的整數(19)有以下程序#include<stdio.h>Main(){ int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3) printf(「%d,%d,%d\n」,a,b,c);else printf(「%d,%d,%d\n」,a,b,c);else printf(「%d,%d,%d\n」,a,b,c);}程序運行後的輸出結果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序中的變數已正確定義for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(「*」);程序段的輸出結果是A)******** B)**** C)** D)*(21)有以下程序#include<stdio.h>main(){char *s=(「ABC);</p><p>do</p><p>{printf(「%d」,*s%10);s++;</p><p>}while(*s);}注意,字母A的ASCII碼值為65。程序運行後的輸出結果是A)5670 B)656667 C)567 D)ABC(22)設變數已正確定義,以下不能統計出一行中輸入字元個數(不包含回車符)的程序段是A)n=0;while((ch=getchar())!=』\n』)n++; B) n=0;while(getchar()!=』\n』)n++;C)for(n=0; getchar()!=』\n』;n++); D)n=0;for(ch=getchar();ch!=』\n』;n++);(23)有以下程序#include<stdio.h>main(){ int a1,a2;char c1,c2;scanf(「%d%c%d%c」,&a1,&c1,&a2,&c2);printf(「%d,%c,%d,%c」,&1,c1,a2,c2);}若想通過鍵盤輸入,使得a1的值為12,a2的是為34,c1的值為字元a,c2的值為字元b,程序輸出結果是:12,a,34,b,則正確的輸入格式是(以下 代表空格,<CR>代表回車)A)12a34b<CR> B)12 a 34 b<CR>C)12,a,34,b<CR> D)12 a34 b<CR>(24)有以下程序#include<stdio.h>int f(int x,int y){return()y-x)*x);}main(){int a=3,b=4,c=5,d;</p><p>d=f(f(a,b),f(a,c));</p><p>printf(「%d\n」,d);</p><p>}程序運行後的輸出結果是A)10 B)9 C)8 D)7(25)有以下程序#include<stdio.h>void fun(char *s){while(*s)</p><p> { if(*s%2==0) printf(「%c」,*s);</p><p>s++;</p><p> }}main(){ char a[]={「good」}; fun(a);printf(「\n」);}注意:字母a的ASCII碼值為97,程序運行後的輸出結果是A)d B)go C)god D)good(26)有以下程序#include <stdio.h>void fun( int *a,int *b){int *c;</p><p>c=a;a=b;b=c;</p><p>}main(){int x=3,y-5,*P=&x,*q=&y;</p><p> fun(p,q);printf(「%d,%d,」,*p,*q);</p><p>fun(&x,&y);printf(「%d,%d\n」,*p,*q);</p><p>}程序運行後的輸出結果是A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3(27)有以下程序#include <stdio.h>void f(int *p,int *q );main(){ int m=1,n=2,*r=&m; f(r,&n);printf(「%d,%d」,m,n);}void f(int *p,int *q){p=p+1;*q=*q+1;}程序運行後輸出的結果是A)1,3 B)2,3 C)1,4 D)1,2(28)以下函數按每行8個輸出數組中的數據void fun( int *w,int n){ int i; for(i=0;i<n;i++) {________</p><p> printf(「%d」,w);</p><p> } printf(「\n」);}下劃線處應填入的語句是A)if(i/8==0)print(「\n」); B) if(i/8==0)continue;C) if(i%8==0)print(「\n」); D) if(i%8==0)continue;(29)若有以下定義 int x[10],*pt=x;則對x數組元素的正確應用是A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3 (30)設有定義:char s[81];int i=10;,以下不能將一行(不超過80個字元)帶有空格的字元串真確讀入的語句或語句組是A gets(s) B)while((s[i++]=getchar())!=」\n」;s=」\0」;C)scanf(「%s」,s);D)do{scanf(「%c」,&s);}while(s[i++]!=」\n」);s=」\0」;(31)有以下程序#include <stdio.h>main(){ char *a[ ]={「abcd」,」ef」,」gh」,」ijk」};int I; for (i=0;i<4;i++) printf(「%c」,*a);}程序運行後輸出的結果是A)aegi B)dfhk C)abcd D)abcdefghijk(32)以下選項中正確的語句組是A)char s[];s=」BOOK!」; B) char *s;s={」BOOK!」};C)char s[10];s=」BOOK!」; D) char *s;s=」BOOK!」;(33)有以下程序#include <stdio.h>int fun{int x,int y}{ if(x==y) return(x); else return((x+y)/2)}main(){ int a=4,b=5,c=6; printf(「%d\n」,fun(2*a,fun(b,c)))}程序運行後的輸出結果是A)3 B)6 C)8 D)12(34)設函數中有整型變數n,為保證其在未賦值的情況下初值為0,應選擇的存儲類別是A)auto B) register C)static D)auto或register(35)有以下程序#include <stdio.h>int b=2;int fun(int *k){ b=*k+b;return(b);}main(){ int a[10]={1,2,3,4,5,6,7,8},I; for(i=2;i<4;i++) {b=fun(&a)+b;printf(「%d」,b);} printf(「\n」);}程序運行後輸出的結果是A)10 12 B)8 10 C)10 28 D)10 16(36)有以下程序#include <stdio.h>#define PT 3.5;#define S(x) PT*x*x;main(){ int a=1, b=2; printf(「%4.1f\n」,S(a+b));}程序運行後輸出的結果是A)14.0 B)31.5 C)7.5 D)程序有錯無輸出結果(37)有以下程序#include <stdio.h>struct ord{ int x,y;} dt[2]={1,2,3,4};main(){ struct ord *p=dt; printf (「%d,」,++p->x); printf(「%d\n」,++p->y);}程序的運行結果是A)1,2 B)2,3 C)3,4 D)4,1(38)設有宏定義:#include IsDIV(k,n) ((k%n==1)?1:0且變數m已正確定義並賦值,則宏調用:IsDIV(m,5)&& IsDIV(m,7)為真時所要表達的是A)判斷m是否能被5或者7整除B)判斷m是否能被5和7整除C)判斷m被5或者7整除是否餘1D)判斷m被5和7整除是否餘1(39)有以下程序#include <stdio.h>main(){ int a=5,b=1,t; t=(a<<2|b); printf(「%d\n」,t) }程序運行後的輸出結果是A)21 B)11 C)6 D)1(40)有以下程序#include <stdio.h>main(){ FILE *f; f=fopen(「filea.txt」,」w」); fprintf(f,」abc」); fclose(f);}若文本文件filea.txt中原有內容為:hello,則運行以上程序後,文件filea.txt中的內容為A) helloabc B)abclo C)abc D)abchello 二、填空題(每空2分,共30分) 請將每一個空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。(1)假設一個長度為50的數組(數組元素的下標從0到49)作為棧的存儲空間,棧底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數組下標),則棧中具有 【1】 個元素。(2)軟體測試可分為白盒測試和黑盒測試。基本路徑測試屬於 【2】 測試。(3)符合結構化原則的三種基本控制結構是:選擇結構、循環結構和 【3】 。(4)資料庫系統的核心是 【4】(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯系的是 【5 】框。(6)表達式(int)((double)(5/2)+2.5)的值是【6】(7)若變數x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(【7】,x/y);補充完整,使其輸出的計算結果形式為:x/y=11(8)有以下程序#include <stdio.h>main( ){ char c1,c2; scanf(「&c」,&c1); while(c1<65||c1>90) scanf(「&c」,&c1); c2=c1+32; printf(「&c, &c\n」,c1,c2);}程序運行輸入65回車後,能否輸出結果、結束運行(請回答能或不能)【8】 。 (9)以下程序運行後的輸出結果是【9】#include <stdio.h>main( ){int k=1,s=0;</p><p>do{</p><p>if{((k&2)!=0)continue;</p><p>s+=k;k++;</p><p>}while(k)10);printf(「s=&d/n」,s);} (10)下列程序運行時,若輸入labced12df<回車> 輸出結果為【10】 #include <stdio.h>main( ){char a =0,ch;</p><p>while((ch=getchar())!=』\n』)</p><p>{if(a&2!=0&&(ch>』a』&&ch<=』z』)) ch=ch-『a』+』A』;</p><p>a++;putchar(ch);</p><p>}printf(「\n」);}(11)有以下程序,程序執行後,輸出結果是【11】#include <stdio.h>void fun (int *a){a[0=a[1];]}main(){int a[10]={10,9,8,7,6,5,4,3,2,1},i;for(i=2;i>=0;i--) fun{&a};for(i=0;i<10;i++) printf(「&d」,a);printf(「\n」);}(12)請將以下程序中的函數聲明語句補充完整#include <stdio.h>int【12】 ;main( ){int x,y,(*p)();</p><p>p=max;</p><p>printf(「&d\n」,&x,&y);</p><p>}Int max(int a,int b){return (a>b/a:b);}(13)以下程序用來判斷指定文件是否能正常打開,請填空#include <stdio.h>main( ){FILE *fp;</p><p>if (((fp=fopen(「test.txt」,」r」))==【13】))</p><p>printf(「未能打開文件!\n」);</p><p>else</p><p>printf(「文件打開成功!\n」);</p><p>(14)下列程序的運行結果為【14】</p><p>#include <stdio.h></p><p>#include <string.h></p><p>struct A</p><p>{int a;char b[10];double c;};void f (struct A *t);main(){struct A a=(1001,」ZhangDa」,1098,0);</p><p>f(&a);printf(「&d,&s,&6,if\n」,a.a,a.b,a.c);</p><p>}void f(struct A *t){strcpy(t->b,」ChangRong」); }(15)以下程序把三個NODETYPE型的變數鏈接成一個簡單的鏈表,並在while循環中輸出鏈表結點數據域中的數據,請填空#include <stdio.h>struct node{int data; struct node *next;};typedef struct node NODETYPE;main(){NODETYPE a,b,c,*h,*p;</p><p>a. data=10;b.data=20;c.data=30;h=&a;</p><p>b. next=&b;b.next=&c;c.next=』\0』;</p><p>p=h;</p><p>while(p){printf(「&d」,p->data);【15】;}} 2009年4月NCRE二級C參考答案選擇題:1~10: DACDC ABABC11~20:CBDDA CDBCB21~30:CDABA BACBC31~40:ADBCC CBDAC 填空題:(1)19(2)白盒(3)順序結構(4)資料庫管理系統(DBMS)(5)菱形(6)4(7)"x/y=%d"(8)能(9)s=0(10)1AbCeDf2dF(11)7777654321(12)max(int a,int b)(13)NULL(14)1001,ChangRong,1098.0(15)p=p—>next
④ 四川省計算機二級C語言考試 真題
一、是非判斷題(每小題1分,共10分) 1.數據元素是數據的基本單位,數據項是數據的最小單位。 ( 1 ) 2.棧是特殊的線性表,須用一組地址連續的存儲單元來存儲其元素。 ( 2 ) 3.引入虛擬存儲技術後,邏輯內存總容量是由地址匯流排的位數確定的。 ( 3 ) 4.編譯程序是一種常用的應用軟體。 ( 4 ) 5.順序文件和鏈接文件的長度都可以動態變化。 ( 5 ) 6.在文件系統中彩目錄管理文件。 ( 6 ) 7.允許多用戶在其終端上同時交互地使用計算機的操作系統稱為實時系統。 ( 7 ) 8.程序、數據、和程序控制塊是構成一個進程的三要素。 ( 8 ) 9.黑盒測試時,既要考慮程序的內部邏輯結構又要考慮其外部特性。 ( 9 ) 10.軟體的總體設計和詳細設計都要用PAD圖形工具。 ( 10 )二、單項選擇題(每小題1分,共5分) 1.允許用戶把若干作業提交計算機系統集中處理的操作系統稱為( 11 )。11(A)分時操作系統 (B)實時操作系統 (C)網路操作系統 (D)批處理操作系統 2.分配到必要資源並獲得了處理機時的進程的狀態稱為( 12 )。12(A)就緒狀態 (B)執行狀態 (C)等待狀態 (D)阻塞狀態 3.利用通道技術可以在( 13 )之間直接交換數據。13(A)內存與CPU (B)CPU與外設 (C)內存與外設 (D)內存、CPU和外設三者 4.以下的准則中哪個不是軟體設計的准則( 14 )。14(A)編程語言選擇准則 (B)信息屏蔽准則 (C)結構化和模塊化准則 (D)抽象准則 5.有一數列:97 65 76 13 29 49 58 經過一趟排序後得到:65 97 13 76 29 49 58 請問使用的是何種排序方法( 15 )。15(A)簡單插入排序 (B)冒泡排序 (C)2路歸並排序 (D)快速排序 C與C++語言程序設(共85分)一、單項選擇題(每小題1分,共10分) 1.定義如下枚舉類型:enum Day{Monday,Tuesday,Wednesday,Thursday,Friday=2};則下列語句正確的是 ( 16 )。16 (A) 表達式Wednesday==Friday的值是true(B) enum Day day; day=3;(C) enum Day day; day=Tuesday-3;(D) enum Day day; day=Monday+10; 2.下列程序片段的輸出結果是( 17 )。int m=4;do { printf("%d,",m-=3); }while(!(--m));17(A)1 (B)1,-3, (C)3,0 (D)死循環 3.執行下列程序片段時的輸出結果是( 18 )。int x,y;x=3;y=5;printf("%d",x%=(y/=2) );18(A)3 (B)2 (C)1 (D)0 4.對於下述程序,判斷正確的是( 19 )。# include <stdio.h>void f(int *p){ *p=10; }int *p;void main(){ f(p); printf("%d",(*p)++ );}19 (A) 輸出的值是隨機值 (B) 運行時出錯 (C) 輸出值為10 (D) 輸出值為11 5.下列程序運行的結果是( 20 )。# define FU(y) 2.8+y# define PR(a) printf("%d",(int)(a))# define PRINT(a) PR(a);# include <stdio.h>void main(){ int x=2; PRINT( FU(5) * x );}20(A)12 (B)14 (C)13 (D)15 6.下列程序運行的結果是( 21 )。# include <stdio.h>void main(){ int a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+4; printf("%d",*++p); printf("%d",++*p);}21 (A)4,3 (B)4,6 (C)5,5 (D)4,5 7.關於對類要領的描述中,錯誤的是( 22 )。22 (A) 類就是C語言中的結構類型(B) 類是創建對象的樣板 (C) 類是具有共同行為的若干對象的統一描述體(D) 類是抽象數據類型的實現 8.已知int a=9,b=4; 將a-b的值輸出顯示到屏幕上,下列各種實現方法中,正確的是( 23 )。23 (A) cout<<a<<'-'<<b<<endl (B) cout<<"a-b"<<endl (C) cout<<a-b<<endl (D) cout<<"%d\n",a-b 9.下列循環語句會進入死循環的是( 24 )。24 (A) i=0;do {i++; }while(i==100); (B) for(i=0;i<100;i+=3.14); (C) for(i=0;;i+=2); (D) k=1;do {k--; }while(k); 10.下面程序運行的結果是( 25 )。# include <stdio.h>int fun(char *str){ int n=0; while(*str>='0' && *str<='9') { n=n*10+*str-'1'; str++; } return n;}void main(){ printf("%d\n",fun("567.89")); }25 (A)89 (B)567.89 (C)567 (D)456 四川省計算機等級考試二級C語言筆試題(第二十次)二
2009-03-29 15:11:39 二、讀程序回答問題(每個選擇3分,共45分)。 1.有下列程序:# include <iostream.h>void main(){ int a,b,c,x; a=b=c=0; for(int i=0;i<10;i++) { cin>>x; switch(x%3) { case 0: a+=x; break; case 1: b+=x; break; case 2: c+=x; break; } } cout<<a<<','<<b<<','<<c<<endl;}程序運行時依次輸入x的值為:1 2 3 4 5 6 7 8 9 10①程序運行的結果是( 26 )。26 (A) 3,12,21 (B) 18,22,15 (C) 3,4,3 (D) 9,10,8②switch(x%3)與( 27 )相同。27 (A) switch(!(x%3)!=0) (B) switch(x%3==0) (C) switch(x%3!=0) (D) 他們都不相同 2.有下列程序:# include <stdio.h>void main(){
⑤ 全國計算機等級考試二級C語言歷年試題及答案
這里有一份最全的考研歷年真題資料分享給你
鏈接:
通過不斷研究和學習歷年真題,為考生沖刺階段復習提分指點迷津,做真題,做歷年真題集,對照考綱查缺補漏,提高實戰素養,制定做題策略,規劃方向;
若資源有問題歡迎追問!
⑥ 2020年計算機二級C語言考試每日一練(6月19日)
備考全國計算機二級C語言考試的小夥伴們,復習的都怎麼樣了呢?環球青藤小編發布了2020年計算機二級C語言考試每日一練供大家參考復習,小夥伴們快來做一做,測試一下自己吧!了解更多全國計算機二級C語言備考資料敬請關注環球青藤計算機二級頻道。
2020年計算機二級C語言考試每日一練(6月19日)
1.在軟體設計中不使用的工具是()。
A.系統結構圖
B.PAD圖
C.數據流圖(DFD圖)
D.程序流程圖
答案:C
2.以下選項中關於程序模塊化的敘述錯誤的是()。
A.可採用自底向上、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序
B.把程序分成若干相對獨立、功能單一的模塊,可便於重復使用這些模塊
C.把程序分成若干相對獨立的模塊,可便於編碼和調試
D.可採用自頂向下、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序
答案:A
3.定義無符號整數類為UInt,下面可以作為類UInt實例化值的是()。
A.-69
B.369
C.0.369
D.整數集合{1,2,3,4,5}
答案:B
4.有如下程序段:
int x=12;
double y=3.141593;
prinff("%d%8.6f",x,y);其輸出結果是( )。
A.123.141593
B.12 3.141593
C.12,3.141593
D.123.1415930
答案:A
5.在以下給出的表達式中,與while(E)中的(E)不等價的表達式是()。
A.(E>0||E<0)
B.(E==0)
C.(!E==0)
D.(E!=0)
答案:B
更多2020年計算機二級C語言考試每日一練試題,請繼續關注環球青藤計算機二級頻道。需要及時了解考試動態的小夥伴可“ 免費預約簡訊提醒”屆時環球青藤會及時為大家推送2020年計算機二級考試相關信息提醒。環球青藤友情提示:對於想要參加計算機二級考試的小夥伴們,環球青藤特地為您准備了計算機二級考試資料,如有需要請點擊文章下方“免費下載>>>計算機二級考試資料”下載學習。
⑦ 急!!歷年國家計算機二級c語言筆試真題答案。
2010年9月全國計算機二級C語言筆試試題:文字版
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分。
(1)下列敘述中正確的是
A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B)線性表的鏈式存儲結構所需要的存儲空間一般要多於順序存儲結構
C)線性表的鏈式存儲結構所需要的存儲空間一般要少於順序存儲結構
D)上述三種說法都不對
(2)下列敘述中正確的是
A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態變化
B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態變化
C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態變化
D)上述三種說法都不對
(3)軟體測試的目的是
A)評估軟體可靠性
B)發現並改正程序中的錯誤
C)改正程序中的錯誤
D)發現程序中的錯誤
(4)下面描述中,不屬於軟體危機表現的是
A)軟體過程不規范
B)軟體開發生產率低
C)軟體質量難以控制
D)軟體成本不斷提高
(5)軟體生命周期是指
A)軟體產品從提出、實現、使用維護到停止使用退役的過程
B)軟體從需求分析、設計、實現到測試完成的過程
C)軟體的開發過程
D)軟體的運行維護過程
(6)面向對象方法中,繼承是指
A)一組對象所具有的相似性質
B)一個對象具有另一個對象的性質
C)各對象之間的共同性質
D)類之間共享屬性和操作的機制
(7)層次型、網狀型和關系型資料庫劃分原則是
A)記錄長度
B)文件的大小
C)聯系的復雜程度
D)數據之間的聯系方式
(8)一個工作人員可以使用多台計算機,而一台計算機可被多個人使用,則實體工作人員、與實體計算機之間的聯系是
A)一對一
B)一對多
C)多對多
D)多對一
(9)資料庫設計中反映用戶對數據要求的模式是
A)內模式
B)概念模式
C)外模式
D)設計模式
(10)有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是
A)自然連接
B)交
C)投影
D)並
(11)以下關於結構化程序設計的敘述中正確的是
A)一個結構化程序必須同時由順序、分支、循環三種結構組成
B)結構化程序使用goto語句會很便捷
C)在C語言中,程序的模塊化是利用函數實現的
D)由三種基本結構構成的程序只能解決小規模的問題
(12)以下關於簡單程序設計的步驟和順序的說法中正確的是
A)確定演算法後,整理並寫出文檔,最後進行編碼和上機調試
B)首先確定數據結構,然後確定演算法,再編碼,並上機調試,最後整理文檔
C)先編碼和上機調試,在編碼過程中確定演算法和數據結構,最後整理文檔
D)先寫好文檔,再根據文檔進行編碼和上機調試,最後確定演算法和數據結構
(13)以下敘述中錯誤的是
A) C程序在運行過程中所有計算都以二進制方式進行
B)C程序在運行過程中所有計算都以十進制方式進行
C)所有C程序都需要編譯鏈接無誤後才能運行
D)C程序中整型變數只能存放整數,實型變數只能存放浮點數
(14)有以下定義:int a; long b; double x,y;則以下選項中正確的表達式是
A)a%(int)(x-y)
B)a=x!=y;
C)(a*y)%b
D)y=x+y=x
(15)以下選項中能表示合法常量的是
A)整數:1,200
B)實數:1.5E2.0
C )字元斜杠:『\』
D)字元串:"\007"
(16)表達式a+=a-=a=9的值是
A)9
B)_9
C)18
D)0
(17)若變數已正確定義,在if (W)printf(「%d\n,k」);中,以下不可替代W的是
A)a<>b+c
B)ch=getchar()
C)a==b+c
D)a++
(18)有以下程序
#include<stdio.h>
main()
{int a=1,b=0;
if(!a) b++;
else if(a==0)if(a)b+=2;
else b+=3;
printf(」%d\n」,b);
}
程序運行後的輸出結果是
A)0
B)1
C)2
D)3
(19)若有定義語句int a, b;double x;則下列選項中沒有錯誤的是
A)switch(x%2) B)switch((int)x/2.0
{case 0: a++; break; {case 0: a++; break;
case 1: b++; break; case 1: b++; break;
default : a++; b++; default : a++; b++;
} }
C)switch((int)x%2) D)switch((int)(x)%2)
{case 0: a++; break; {case 0.0: a++; break;
case 1: b++; break; case 1.0: b++; break;
default : a++; b++; default : a++; b++;
} }
(20)有以下程序
#include <stdio.h>
main()
{int a=1,b=2;
while(a<6){b+=a;a+=2;b%二10;}
printf(」%d,%d\n」,a,b);
}
程序運行後的輸出結果是
A)5,11
B)7,1
C)7,11
D)6,1
(21)有以下程序
#include<stdio.h>
main()
{int y=10;
while(y--);
printf(」Y=%d\n」,Y);
}
程序執行後的輸出結果是
A)y=0
B)y= -1
C)y=1
D)while構成無限循環
(22)有以下程序
#include<stdio .h>
main()
{char s〔」=」rstuv";
printf(」%c\n」,*s+2);
}
程序運行後的輸出結果是
A)tuv
B)字元t的ASCII碼值
C)t
D)出錯
(23)有以下程序
#include<stdio.h>
#include<string.h>
main()
{char x〔〕=」STRING」;
x〔0」=0;x〔1〕=』\0』;x〔2」=』0』;
printf(」%d %d\n」,sizeof(x),strlen(x));
}
程序運行後的輸出結果是
A)6 1
B)7 0
C)6 3
D)7 1
(24)有以下程序
#include<stdio.h>
Int f(int x);
main()
{int n=1,m;
m=f(f(f(n)));printf(」%d\n」,m);
}
int f(int x)
{return x*2;}
程序運行後的輸出結果是
A)1
B)2
C)4
D)8
(25)以下程序段完全正確的是
A)int *p; scanf("%d",&p);
B)int *p; scanf(「%d」,p);
C)int k, *p=&k; scanf("%d",p);
D)int k, *p:; *p= &k; scanf(「%d」,p);
(26)有定義語句:int *p[4];以下選項中與此語句等價的是
A)int p[4];
B)int **p;
C)int *(p「4」);
D)int (*p)「4」;
(27)下列定義數組的語句中,正確的是
A)int N=10; B)#define N 10
int x[N]; int x[N];
C)int x[0..10〕; D)int x〔〕;
(28)若要定義一個具有5個元素的整型數組,以下錯誤的定義語句是
A)int a[5]={0};
B)int b[]={0,0,0,0,0};
C)int c[2+3];
D)int i=5,d[i];
(29)有以下程序
#include<stdio.h>
void f(int *p);
main()
{int a〔5〕={1,2,3,4,5},*r=a;
f(r);printf(」%d\n」;*r);
}
void f(int *p)
{p=p+3;printf(」%d,」,*p);}
程序運行後的輸出結果是
A)1,4
B)4,4
C)3,1
D)4,1
(30)有以下程序(函數fun只對下標為偶數的元素進行操作)
# include<stdio.h>
void fun(int*a;int n)
{int i、j、k、t;
for (i=0;i<n一1;1+=2)
{k=i;『
for(j=i;j<n;j+=2)if(a〔j〕>a〔k])k=j;
t=a〔i];a〔i]=a〔k];a〔k]=t;
}
}
main()
{int aa「10」={1、2、3、4、5、6、7},i;
fun(aa、7);
for(i=0,i<7; i++)printf(」%d,」,aa〔i〕));
printf(」\n」);
}
程序運行後的輸出結果是
A)7,2,5,4,3,6,1
B)1,6,3,4,5,2,7
C)7,6,5,4,3,2,1
D)1,7,3,5,6;2,1
(31)下列選項中,能夠滿足「若字元串s1等於字元串s2,則執行ST"要求的是
A)if(strcmp(s2,s1)==0)ST;
B)if(sl==s2)ST;
C)if(strcpy(s l ,s2)==1)ST;
D)if(sl-s2==0)ST;
(32)以下不能將s所指字元串正確復制到t所指存儲空間的是
A)while(*t=*s){t++;s++;}
B)for(i=0;t[i]=s[i〕;i++);
C)do{*t++=*s++;}while(*s);
D)for(i=0,j=0;t[i++]=s[j++];);
(33)有以下程序( strcat函數用以連接兩個字元串)
#include<stdio.h>
#include<string .h>
main()
{char a〔20〕=」ABCD\OEFG\0」,b〔〕=」IJK」;
strcat(a,b);printf(」%s\n」,a);
}
程序運行後的輸出結果是
A)ABCDE\OFG\OIJK
B)ABCDIJK
C)IJK
D)EFGIJK
(34)有以下程序,程序中庫函數islower (ch)用以判斷ch中的字母是否為小寫字母
#include<stdio.h>
#include<ctype.h>
void fun(char*p)
{int i=0;
while (p[i〕)
{if(p[i]==』 』&& islower(p「i-1」))p[i-1]=p[i-1]-『a』+『A』;
i++;
}
}
main()
{char s1〔100〕=」ab cd EFG!」;
fun(s1); printf(」%s\n」,s1);
}
程序運行後的輸出結果是
A)ab cd EFG!
B)Ab Cd EFg!
C)aB cD EFG!
D)ab cd EFg!
(35)有以下程序
#include<stdio.h>
void fun(int x)
{if(x/2>1)fun(x/2);
printf(」%d」,x);
}
main()
{fun(7);printf(」\n」);}
程序運行後的輸出結果是
A)1 3 7
B)7 3 1
C)7 3
D)3 7
(36)有以下程序
#include<stdio.h>
int fun()
{static int x=1;
x+=1;return x;
}
main()
{int i;s=1;
for(i=1;i<=5;i++)s+=fun();
printf(」%d\n」,s);
}
程序運行後的輸出結果是
A)11
B)21
C)6
D)120
(37)有以下程序
#inctude<stdio.h>
#include<stdlib.h>
Main()
{int *a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b;
printf(「%d,%d,%d\n」,*a,*b,*c);
}
程序運行後的輸出結果是
A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3
(38)有以下程序
#include<stdio.h>
main()
{int s,t,A=10;double B=6;
s=sizeof(A);t=sizeof(B);
printf(「%d,%d\n」,s,t);
}
在VC6平台上編譯運行,程序運行後的輸出結果是
A)2,4 B)4,4 C)4,8 D)10,6
(39)若有以下語句
Typedef struct S
{int g; char h;}T;
以下敘述中正確的是
A)可用S定義結構體變數
B)可用T定義結構體變數
C)S是struct類型的變數
D)T是struct S類型的變數
(40)有以下程序
#include<stdio.h>
main()
{short c=124;
c=c_______;
printf(「%d\n」、C);
}
若要使程序的運行結果為248,應在下劃線處填入的是
A)>>2 B)|248 C)&0248 D)<<I
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。
(1)一個棧的初始狀態為空。首先將元素5,4,3,2,1依次入棧,然後退棧一次,再將元素 A,B,C,D依次入棧,之後將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的順序為【1】
(2)在長度為n的線性表中,尋找最大項至少需要比較【2】次。
(3)一棵二叉樹有10個度為1的結點,7個度為2的結點,則該二叉樹共有【3】個結點。
(4)僅由順序、選擇(分支)和重復(循環)結構構成的程序是【4】程序。
(5)資料庫設計的四個階段是:需求分析,概念設計,邏輯設計【5】。
(6)以下程序運行後的輸出結果是【6】。
#include<stdio.h>
main()
{int a=200,b=010;
printf(」%d%d\n」,a,b);
}
(7)有以下程序
#include<stdio.h>
main()
{int x,Y;
scanf(」%2d%ld」,&x,&y);printf(」%d\n」,x+y);
}
程序運行時輸入:1234567程序的運行結果是【7】。
(8)在C語言中,當表達式值為0時表示邏輯值「假」,當表達式值為【8】時表示邏輯值「真」。
(9)有以下程序
#include<stdio.h>
main()
{int i,n[]={0,0,0,0,0};
for (i=1;i<=4;i++)
{n[i]=n[i-1]*3+1; printf(」%d ",n[i]);}
}
程序運行後的輸出結果是【9】。
(10)以下fun函數的功能是:找出具有N個元素的一維數組中的最小值,並作為函數值返回。請填空。(設N已定義)
int fun(int x〔N〕)
{int i,k=0;
for(i=0;i<N;I++)
if(x〔i〕
return x〔k〕;
}
(11)有以下程序
#include<stdio.h>
int*f(int *p,int*q);
main()
{int m=1,n=2,*r=&m;
r=f(r,&n);printf(」%d\n」,*r);
}
int*f(int *p,int*q)
{return(*p>*q)?p:q;}
程序運行後的輸出結果是【11】
(12)以下fun函數的功能是在N行M列的整形二維數組中,選出一個最大值作為函數值返回,請填空。(設M,. N已定義)
int fun(int a〔N〕[M))
{int i,j,row=0,col=0;
for(i=0;i<N;I++)
for(j=0;j
if(a〔i〕〔j〕>a〔row〕〔col〕){row=i;col=j;}
return(【12】):
}
(13)有以下程序
#include<stdio.h>
main()
{int n[2],i,j;
for(i=0;i<2;i++)n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)n〔j〕=n「i」+1;
printf(」%d\n」,n[1]);
}
程序運行後的輸出結果是【13】
(14)以下程序的功能是:藉助指針變數找出數組元素中最大值所在的位置並輸出該最大值。請在輸出語句中填寫代表最大值的輸出項。
#include<stdio.h>
main()
{int a〔10〕,*p,*s;
for(p=a;p-a<10;p++)scanf(」%d」,p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P;
printf("max=%d\n」,【14】);
}
(15)以下程序打開新文件f.txt,並調用字元輸出函數將a數組中的字元寫入其中,請填空。
#include<stdio.h>
main()
{【15】*fp;
char a〔5〕={』1』,』2』,』3』,』4』,』5』},i;
fp=fopen(」f .txt」,」w」);
for(i=0;i<5;i++)fputc(a[i],fp);
fclose(fp);
⑧ 全國高等學校計算機二級c語言(江西考區)考試真題
09年3月全國計算機等級考試二級C筆試真題(附答案)
(考試時間90分鍾,滿分100分)
一、選擇題
(1)下列敘述中正確的是
A) 棧是先進先出(FIFO)的線性表
B) 隊列是先進先出(FIFO)的線性表
C) 循環隊列是非線性結構
D) 有序線性表既可以採用順序存儲結構,也可以採用鏈式存儲結構
(2)支持子程序調用的數據結構是
A) 棧 B) 樹 C) 隊列 D)二叉樹
(3)某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是
A)10 B)8 C)6 D)4
(4)下列排序方法中,最壞情況下比較次數最少的是
A)冒泡排序 B)簡單選擇排序 C)直接插入排序 D)堆排序
(5)軟體按功能可以分為:應用軟體、系統軟體和支撐軟體(或工具軟體)。下面屬於應用軟體的是
A)編譯軟體 B)操作系統 C)教務管理系統 D)匯編程序
(6)下面敘述中錯誤的是
A)軟體測試的目的是發現錯誤並改正錯誤
B)對被調試的程序進行「錯誤定位」是程序調試的必要步驟
C)程序調試通常也稱為Debug
D)軟體測試應嚴格執行測試計劃,排除測試的隨意性
(7)耦合性和內聚性是對模塊獨立性度量的兩個標准。下列敘述中正確的是
A)提高耦合性降低內聚性有利於提高模塊的獨立性
B)降低耦合性提高內聚性有利於提高模塊的獨立性
C)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度
D)內聚性是指模塊間互相連接的緊密程度
(8)資料庫應用系統中的核心問題是
A)資料庫設計 B)資料庫系統設計
C)資料庫維護 D) 資料庫管理員培訓
(9)有兩個關系R,S如下:
R S
A B C A B
a 3 2 a 3
b 0 1 b 0
c 2 1 c 2
由關系R通過運算得到關系S,則所使用的運算為
A) 選擇 B)投影 C) 插入 D)連接
(10)將E-R圖轉換為關系模式時,實體和聯系都可以表示為
A) 屬性 B)鍵 C) 關系 D) 域
(11)以下選項中合法的標識符是
A) 1-1 B)1—1 C)-11 D)1--
(12)若函數中有定義語句:int k;,則
A)系統將自動給k賦初值0 B)這時k中值無定義
C)系統將自動給k賦初值-1 D)這時k中無任何值
(13)以下選項中,能用作數據常量的是
A)o115 B) 0118 C)1.5e1.5 D) 115L
(14)設有定義:int x=2; ,以下表達式中,值不為6的是
A) x*=x+1 B) x++,2*x C)x*=(1+x) D)2*x,x+=2
(15)程序段:int x=12; double y=3.141593; printf(「%d%8.6f」,x,y);的輸出結果是
A)123.141593 B)12 3.141593 C)12,3.141593 D)123.141593
(16)若有定義語句:double x,y,*px,*py,執行了px=&x, py=&y;之後,正確的輸入語句是
A)scanf(「%f%f」,x,y); B) scanf(「%f%f」,&x,&y);
C) scanf(「%lf%le」,px,py); D) scanf(「%lf%lf」,x,y);
(17)以下是if語句的基本形式:
if (表達式) 語句,其中表達式
A)必須是邏輯表達式 B)必須是關系表達式
C)必須是邏輯表達式或關系表達式 D)可以是任意合法的表達式
(18)有以下程序
#include <stdio.h>
main()
{int x;
scanf(「%d」,&x);
if(x<=3); else
if(x!=10) printf(「%d\n」,x);
}
程序運行時,輸入的值在哪個范圍才會有輸出結果
A)不等於10的整數 B)大於3且不等於10的整數
C) 大於3或等於10的整數 D)小於3的整數
(19)有以下程序
#include<stdio.h>
Main()
{ int a=1,b=2,c=3,d=0;
if(a= =1 &&b++= =2)
if(b!=2 || c--!=3)
printf(「%d,%d,%d\n」,a,b,c);
else printf(「%d,%d,%d\n」,a,b,c);
else printf(「%d,%d,%d\n」,a,b,c);
}
程序運行後的輸出結果是
A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1
(20)以下程序中的變數已正確定義
for(i=0;i<4;i++,i++
for(k=1;k<3;k++);printf(「*」);
程序段的輸出結果是
A)******** B)**** C)** D)*
(21)有以下程序
#include<stdio.h>
main()
{char *s=(「ABC);
do
{printf(「%d」,*s%10);s++;
}while(*s);
}
注意,字母A的ASCII碼值為65。程序運行後的輸出結果是
A)5670 B)656667 C)567 D)ABC
(22)設變數已正確定義,以下不能統計出一行中輸入字元個數(不包含回車符)的程序段是
A)n=0;while((ch=getchar())!=』\n』)n++; B) n=0;while(getchar()!=』\n』)n++;
C)for(n=0; getchar()!=』\n』;n++); D)n=0;for(ch=getchar();ch!=』\n』;n++);
(23)有以下程序
#include<stdio.h>
main()
{ int a1,a2;char c1,c2;
scanf(「%d%c%d%c」,&a1,&c1,&a2,&c2);
printf(「%d,%c,%d,%c」,&1,c1,a2,c2);
}
若想通過鍵盤輸入,使得a1的值為12,a2的是為34,c1的值為字元a,c2的值為字元b,程序輸出結果是:12,a,34,b,則正確的輸入格式是(以下 代表空格,<CR>代表回車)
A)12a34b<CR> B)12 a 34 b<CR>
C)12,a,34,b<CR> D)12 a34 b<CR>
(24)有以下程序
#include<stdio.h>
int f(int x,int y)
{return()y-x)*x);}
main()
{int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf(「%d\n」,d);
}
程序運行後的輸出結果是
A)10 B)9 C)8 D)7
(25)有以下程序
#include<stdio.h>
void fun(char *s)
{while(*s)
{ if(*s%2==0) printf(「%c」,*s);
s++;
}
}
main()
{ char a[]={「good」};
fun(a);printf(「\n」);
}
注意:字母a的ASCII碼值為97,程序運行後的輸出結果是
A)d B)go C)god D)good
(26)有以下程序
#include <stdio.h>
void fun( int *a,int *b)
{int *c;
c=a;a=b;b=c;
}
main()
{int x=3,y-5,*P=&x,*q=&y;
fun(p,q);printf(「%d,%d,」,*p,*q);
fun(&x,&y);printf(「%d,%d\n」,*p,*q);
}
程序運行後的輸出結果是
A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3
(27)有以下程序
#include <stdio.h>
void f(int *p,int *q );
main()
{ int m=1,n=2,*r=&m;
f(r,&n);printf(「%d,%d」,m,n);
}
void f(int *p,int *q)
{p=p+1;*q=*q+1;}
程序運行後輸出的結果是
A)1,3 B)2,3 C)1,4 D)1,2
(28)以下函數按每行8個輸出數組中的數據
void fun( int *w,int n)
{ int i;
for(i=0;i<n;i++)
{________
printf(「%d」,w);
}
printf(「\n」);
}
下劃線處應填入的語句是
A)if(i/8==0)print(「\n」); B) if(i/8==0)continue;
C) if(i%8==0)print(「\n」); D) if(i%8==0)continue;
(29)若有以下定義
int x[10],*pt=x;
則對x數組元素的正確應用是
A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3
(30)設有定義:char s[81];int i=10;,以下不能將一行(不超過80個字元)帶有空格的字元串真確讀入的語句或語句組是
A gets(s)
B)while((s[i++]=getchar())!=」\n」;s=」\0」;
C)scanf(「%s」,s);
D)do{scanf(「%c」,&s);}while(s[i++]!=」\n」);s=」\0」;
(31)有以下程序
#include <stdio.h>
main()
{ char *a[ ]={「abcd」,」ef」,」gh」,」ijk」};int I;
for (i=0;i<4;i++) printf(「%c」,*a);
}
程序運行後輸出的結果是
A)aegi B)dfhk C)abcd D)abcdefghijk
(32)以下選項中正確的語句組是
A)char s[];s=」BOOK!」; B) char *s;s={」BOOK!」};
C)char s[10];s=」BOOK!」; D) char *s;s=」BOOK!」;
(33)有以下程序
#include <stdio.h>
int fun{int x,int y}
{ if(x==y) return(x);
else return((x+y)/2)
}
main()
{ int a=4,b=5,c=6;
printf(「%d\n」,fun(2*a,fun(b,c)))
}
程序運行後的輸出結果是
A)3 B)6 C)8 D)12
(34)設函數中有整型變數n,為保證其在未賦值的情況下初值為0,應選擇的存儲類別是
A)auto B) register C)static D)auto或register
(35)有以下程序
#include <stdio.h>
int b=2;
int fun(int *k)
{ b=*k+b;return(b);}
main()
{ int a[10]={1,2,3,4,5,6,7,8},I;
for(i=2;i<4;i++) {b=fun(&a)+b;printf(「%d」,b);}
printf(「\n」);
}
程序運行後輸出的結果是
A)10 12 B)8 10 C)10 28 D)10 16
(36)有以下程序
#include <stdio.h>
#define PT 3.5;
#define S(x) PT*x*x;
main()
{ int a=1, b=2; printf(「%4.1f\n」,S(a+b));}
程序運行後輸出的結果是
A)14.0 B)31.5 C)7.5 D)程序有錯無輸出結果
(37)有以下程序
#include <stdio.h>
struct ord
{ int x,y;} dt[2]={1,2,3,4};
main()
{ struct ord *p=dt;
printf (「%d,」,++p->x); printf(「%d\n」,++p->y);
}
程序的運行結果是
A)1,2 B)2,3 C)3,4 D)4,1
(38)設有宏定義:#include IsDIV(k,n) ((k%n==1)?1:0且變數m已正確定義並賦值,則宏調用:IsDIV(m,5)&& IsDIV(m,7)為真時所要表達的是
A)判斷m是否能被5或者7整除
B)判斷m是否能被5和7整除
C)判斷m被5或者7整除是否餘1
D)判斷m被5和7整除是否餘1
(39)有以下程序
#include <stdio.h>
main()
{ int a=5,b=1,t;
t=(a<<2|b); printf(「%d\n」,t)
}
程序運行後的輸出結果是
A)21 B)11 C)6 D)1
(40)有以下程序
#include <stdio.h>
main()
{ FILE *f;
f=fopen(「filea.txt」,」w」);
fprintf(f,」abc」);
fclose(f);
}
若文本文件filea.txt中原有內容為:hello,則運行以上程序後,文件filea.txt中的內容為
A) helloabc B)abclo C)abc D)abchello
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。
(1)假設一個長度為50的數組(數組元素的下標從0到49)作為棧的存儲空間,棧底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數組下標),則棧中具有 【1】 個元素。
(2)軟體測試可分為白盒測試和黑盒測試。基本路徑測試屬於 【2】 測試。
(3)符合結構化原則的三種基本控制結構是:選擇結構、循環結構和 【3】 。
(4)資料庫系統的核心是 【4】
(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯系的是 【5 】框。
(6)表達式(int)((double)(5/2)+2.5)的值是【6】
(7)若變數x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(【7】,x/y);補充完整,使其輸出的計算結果形式為:x/y=11
(8)有以下程序
#include <stdio.h>
main( )
{ char c1,c2;
scanf(「&c」,&c1);
while(c1<65||c1>90) scanf(「&c」,&c1);
c2=c1+32;
printf(「&c, &c\n」,c1,c2);
}
程序運行輸入65回車後,能否輸出結果、結束運行(請回答能或不能)【8】 。
(9)以下程序運行後的輸出結果是【9】
#include <stdio.h>
main( )
{int k=1,s=0;
do{
if{((k&2)!=0)continue;
s+=k;k++;
}while(k)10);
printf(「s=&d/n」,s);
}
(10)下列程序運行時,若輸入labced12df<回車> 輸出結果為【10】
#include <stdio.h>
main( )
{char a =0,ch;
while((ch=getchar())!=』\n』)
{if(a&2!=0&&(ch>』a』&&ch<=』z』)) ch=ch-『a』+』A』;
a++;putchar(ch);
}
printf(「\n」);
}
(11)有以下程序,程序執行後,輸出結果是【11】
#include <stdio.h>
void fun (int *a)
{a[0=a[1];]}
main()
{int a[10]={10,9,8,7,6,5,4,3,2,1},i;
for(i=2;i>=0;i--) fun{&a};
for(i=0;i<10;i++) printf(「&d」,a);
printf(「\n」);
}
(12)請將以下程序中的函數聲明語句補充完整
#include <stdio.h>
int【12】 ;
main( )
{int x,y,(*p)();
p=max;
printf(「&d\n」,&x,&y);
}
Int max(int a,int b)
{return (a>b/a:b);}
(13)以下程序用來判斷指定文件是否能正常打開,請填空
#include <stdio.h>
main( )
{FILE *fp;
if (((fp=fopen(「test.txt」,」r」))==【13】))
printf(「未能打開文件!\n」);
else
printf(「文件打開成功!\n」);
(14)下列程序的運行結果為【14】
#include <stdio.h>
#include <string.h>
struct A
{int a;char b[10];double c;};
void f (struct A *t);
main()
{struct A a=(1001,」ZhangDa」,1098,0);
f(&a);printf(「&d,&s,&6,if\n」,a.a,a.b,a.c);
}
void f(struct A *t)
{strcpy(t->b,」ChangRong」); }
(15)以下程序把三個NODETYPE型的變數鏈接成一個簡單的鏈表,並在while循環中輸出鏈表結點數據域中的數據,請填空
#include <stdio.h>
struct node
{int data; struct node *next;};
typedef struct node NODETYPE;
main()
{NODETYPE a,b,c,*h,*p;
a. data=10;b.data=20;c.data=30;h=&a;
b. next=&b;b.next=&c;c.next=』\0』;
p=h;
while(p){printf(「&d」,p->data);【15】;}
}
2009年4月NCRE二級C參考答案
選擇題:
1~10: DACDC ABABC
11~20:CBDDA CDBCB
21~30:CDABA BACBC
31~40:ADBCC CBDAC
填空題:
(1)19
(2)白盒
(3)順序結構
(4)資料庫管理系統(DBMS)
(5)菱形
(6)4
(7)"x/y=%d"
(8)能
(9)s=0
(10)1AbCeDf2dF
(11)7777654321
(12)max(int a,int b)
(13)NULL
(14)1001,ChangRong,1098.0
(15)p=p—>next
⑨ 2020年計算機二級C語言考試每日一練(6月18日)
備考全國計算機二級C語言考試的小夥伴們,復習的都怎麼樣了呢?環球青藤小編發布了2020年計算機二級C語言考試每日一練供大家參考復習,小夥伴們快來做一做,測試一下自己吧!了解更多全國計算機二級C語言備考資料敬請關注環球青藤計算機二級頻道。
2020年計算機二級C語言考試每日一練(6月18日)
1.下列四組選項中,正確的C語言標識符是( )。
A、 %x
B、a+b
C、a123
D、123
答案:C
2、下列四組字元串中都可以用作C語言程序中的標識符的是( )。
A、print _3d db8 aBc
B、Iam one_half start$it 3pai
C、str_1 Cpp pow while
D、Pxq My->book line# His.age
答案:A
3.C語言中的簡單數據類型包括( )。
A、整型、實型、邏輯型
B、整型、實型、邏輯型、字元型
C、整型、字元型、邏輯型
D、整型、實型、字元型
答案:D
4.在C語言程序中,表達式5%2的結果是()
A、2.5
B、2
C、1
D、3
答案:C
5.下列關於C語言文件的敘述中正確的是()。
A.文件由一系列數據依次排列組成,只能構成二進制文件
B.文件由結構序列組成,可以構成二進制文件或文本文件
C.文件由數據序列組成,可以構成二進制文件或文本文件
D.文件由字元序列組成,其類型只能是文本文件
答案:C
更多2020年計算機二級C語言考試每日一練試題,請繼續關注環球青藤計算機二級頻道。需要及時了解考試動態的小夥伴可“ 免費預約簡訊提醒”屆時環球青藤會及時為大家推送2020年計算機二級考試相關信息提醒。環球青藤友情提示:對於想要參加計算機二級考試的小夥伴們,環球青藤特地為您准備了計算機二級考試資料,如有需要請點擊文章下方“免費下載>>>計算機二級考試資料”下載學習。