❶ c語言 普及組的模擬題
一、選擇題(共20題,每題1.5分,共計30分。每題有5個備選答案,前10個題為單選題,即
每題有且只有一個正確答案,選對得分;後10題為不定項選擇題,即每題有1至5個正確答案,只
有全部選對才得分)。
1.微型計算機的性能主要取決於( )。
A)內存 B)主板 C)中央處理器 D)硬碟 E)顯示器
2. 128KB的存儲器用十六進製表示,它的最大的地址碼是( )
A)10000 B)EFFF C)1FFFF D)FFFFF E)FFFF
3.能將高級語言程序轉換為目標程序的是( ).
A)調試程序 B)解釋程序 C)編輯程序 D)編譯程序 E)連接程序
4.A=11001010B,B=00001111B,C=01011100B,則A∨B∧C=( )B
A)01011110 B)00001111 C)01011100 D)11001110 E)11001010
5.計算機病毒傳染的必要條件是( ) 。
A)在內存中運行病毒程序
B)對磁碟進行讀寫操作
C)在內存中運行含有病毒的可執行程序
D)復制文件
E)刪除文件
6. TCP/IP協議共有( )層協議
A)3 B)4 C)5 D)6 E)7
7.192.168.0.1是屬於( ).
A)A類地址 B)B類地址 B)C類地址 D)D類地址 E)E類地址
8.對給定的整數序列(54,73,21,35,67,78,63,24,89)進行從小到大的排序時,採用快速排序的第
一趟掃描的結果是( ).
A)(24,21,35,54,67, 78,63,73,89)
B)(24,35,21,54,67, 78,63,73,89)
C)(24,21,35,54,67, 63,73,78,89)
D)(21,24,35,54,63, 67,73,78,89)
E)(24,21,35,54,67, 63,73,78,89)
9.一棵n個結點的完全二叉樹,則二叉樹的高度h為( ).
A)n/2 B)log2n C)(log2n)/2 D) [log2n]+1 E)2n-1
10.下圖對該圖進行廣度優先拓樸排序得到的頂點序列正確的是( ).
A)1,2,3,4,5,6
B)1,3,2,4,5,6
C)1,3,2,4,6,5
D)1,2,3,4,6,5,
E)1,3,2,4,5,6
11.下列屬於馮.諾依曼計算機模型的核心思想是( ).
A)採用二進製表示數據和指令;
B)採用」存儲程序」工作方式
C)計算機硬體有五大部件(運算器、控制器、存儲器、輸入和輸出設備)
D)結構化程序設計方法
E)計算機軟體只有系統軟體
12.下列屬於輸入設備的是( ).
A)列印機 B)掃描儀 C)光筆 D)滑鼠 E)顯示器
13.算式(1000)10-(100)16-(10)8的結果是( ).
A)(890)10 B)(986)8 C)(1011100000)2 D)(2E0)16 E)(736)10
14.下面關於演算法的正確的說法是( )
A)演算法必須有輸出
B)演算法必須在計算機上用某種語言實現
C)演算法不一定有輸入
D)演算法必須在有限步執行後能結束
E)演算法的每一步驟必須有確切的定義
15.下列關於十進制數100的正確說法是( ).
A)原碼為01100100B
B)反碼為64H
C)反碼為9BH
D)補碼為64H
E)補碼為9BH
16.關於windows系統中的窗口和對話框的說法正確的是( ).
A)對話框能移動和改變大小
B)窗口能移動和改變大小
C)對話框只能移動和但不能改變大小
D)對話框不能移動但能改變大小
E)窗口能移動和但不能改變大小
17.下列邏輯運算正確的是( )。
A) A·(A + B )= A
B) A +(A·B)= A
C) A·(B + C )= A·B + A·C
D) A +(B·C)=(A + B)·(A + C)
E) A+1=A
18.下列關於排序說法正確的是( ).
A)插入排序、冒泡排序是穩定的
B)選擇排序的時間復雜性為O(n2)
C)選擇排序、希爾排序、快速排序、堆排序是不穩定的
D)希爾排序、快速排序、堆排序的時間復雜性為O(nlog2n)
E)快速排序是速度最快的排序
19.對於一個大小為3的棧,若輸入隊列為123456,則下列輸出隊列有可能的是( )。
A)123456 B)654321 C)432165 D)431256 E)321654
20. 設有一個含有13個元素的Hash表(0~12),Hash函數是:H(key)=key % 13,其中% 是求余數
運算。用二次探查法解決沖突,則對於序列(8、31、20、33、18、53、27),則下列說法正確
的是( ) 。
A)27在1號格子中
B)33在6號格子中
C)31在5號格子中
D)20在7號格子中
E)18在4號格子中
二.問題求解(5分*2=10分)
1.一個商場有m種顏色的小球,每種小球足夠多,在這m種小球中挑選n個小球的選法有多少種?
如 m=2,n=3 時有4種選法分別是:兩種小球的個數分別為03,12,21,30.問:當m=4,n=4時
選法數=__________。
2.如果一棵m度樹中有n1個度為1的結點,n2個度為2的結點,…….有
nm個度為m的結點,則該樹中葉結點的的個數=______________.
1、C語言中沒有邏輯量,在給出邏輯運算結果時,以 代表「真」,用 代表「假」。
2、一個C源程序中至少應包括一個 。
3、C源程序的基本單位是 。
4、為表示關系X≥Y≥Z,應使用C語言表達式 。
5、若有以下定義:double w[10];則w數組元素下標的上限是 ,下限是 。
6、若有以下定義:double w[5];則數組w下標的上限是 。
7、執行語句:for(i=1;i++<4;)後;變數i的值是 。
6、在C語言中的實型變數分為兩種類型,它們是 、 。
7、語句"printf("%x,%o",16,12);"的輸出結果是 。
8、當a=5,b=4,c=1時,表達式a>b!=c的值是 。
9、若有定義:char c=』\010』;則變數c中包含的字元數為 。
10、C語言中的標識符只能由三種字元組成,它們是 、 、 。
11、若k為int 型且賦值11。請寫出運算k++後表達式的值為 ,變數的值為 。
12、在C語言程序中,如果對函數f的類型未加顯說明,則函數f的隱含類型是 。
13、二維數組中元素在內存中的存放順序是 。
14、設有定義int a=12,b=12;則語句 printf("%d %d\n",--a,++b);的輸出結果是:
。
15、當a=3,b=2,c=1時,表達式f=a>b>c的值為______________________。
16、C語言中的文件類型有 、 。
二、選擇題
1、C語言可執行程序的開始執行點是( )
A、 程序中第一條可執行語言 B、 程序中第一個函數
C、 程序中的main函數 D、 包含文件中的第一個函數
2、以下敘述中不正確的是( )
A、在函數中,通過return語句傳回函數值
B、在函數中,可以有多條return語句
C、在C中,main後的一對圓括弧中也可以帶有形參
D、在C中,調用函數,必需在一條獨立的語句中完成
3、對C程序在作邏輯運算時判斷操作數真、假的表述,下列哪一個是正確的( )。
A、0為假,非0為真 B、只有1為真
C、-1為假,1為真 C、0為真,非0為假
4、以下字元中,不正確的C語言轉義字元是( )
A、『\t』 B、 『\011』 C、『\n』 D、 『\018
5、C語言中運算對象必需是整型的運算符是( )
A、% B、/ C、! D、**
6、putchar函數可以向終端輸出一個( )
A、整型變數表達式值 B、實型變數值
C、字元串 D、字元或字元型變數值
7、下列各語句定義了數組,其中哪一個是正確的( )。
A、int a[5],b[2,3]; B、char no(30);
C、int x[]; D、int x[5]={1,2,3};
8、數組定義為"int a[4][5];", 引用"*(a+1)+2"表示( )。
A、a[1][0]+2 B、 a數組第1行第2列元素的地址
C、a[0][1]+2 D、 a數組第1行第2列元素的值
9、a是int類型變數,c是字元變數。下列輸入語句中哪一個是錯誤的( )。
A、scanf ("%d, %c",&a, &c); B、scanf (" %d%c", a, c);
C、scanf (" %d%c", &a,&c ); D、scanf ( "d=% d, c=%c",&a, &c);
10、將整型變數a、b中的較小值為變數c賦值,下列語句中正確的是( )。
A、c= =(a<b)? a:b; B、c=if(a<b)a else b;
C、c=(a<b)? a:b; D、(a<b)? c=a:c=b;
11、將整型變數a、b中的較大值為變數c賦值,下列語句中正確的是( )。
A、c= =(a>b)? a:b; B、c=(a>b)? a:b;
C、c=if(a>b)a else b; D、(a>b)? c=a:c=b;
12、邏輯運算符中,運算優先順序按從高到低依次為( )。
A、&&, !, || B、||,&&, ! C、&&, ||, ! D、!,&&, ||
13、在C語言程序中( )
A、 函數的定義可以嵌套,但函數的調用不可以嵌套
B、 函數的定義和函數的調用均不可以嵌套
C、 函數的定義不可以嵌套,但函數的調用可以嵌套
D、 函數的定義和函數的調用均可以嵌套
14、C語言中的文件類型只有( )
A、索引文件和文本文件兩種 B、ASCII文件和二進制文件兩種
C、文本文件一種 D、 二進制文件一種
15、若變數已正確定義並賦值,符合C語言語法的表達式是( )
A、a=7+b+c,a++ B、a=a+7; C、int(12.3%4) D、a=a+7=c+b
16、設有int a[ ]={10,11,12},*p=&a[0];則執行完*p++;*p+=1;後a[0],a[1],a[2]的值依次是 ( )
A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12
17、已知ch是字元型變數,下面正確的賦值語句是( )
A、ch=』\123』 B、ch=』xfff』 C、ch=』\08』 D、ch=』\』
18、以下函數調用語句中,含有的實參個數是( )
A、1 B、2 C、4 D、5
Func((exp1,exp2),(exp3,exp4,exp5));
19、以下敘述中正確的是 ( )
A、 輸入項可以是一個實型常量,如 scanf("%f ",3.5);
B、 只有格式控制,沒有輸入項,也能正確輸入數據到內存,如: scanf("a=%d,b=%d");
C、 當輸入一個實型數據時,格式控制可以規定小數點後的位數,如:scanf("%4.2f",&f);
D、 當輸入數據時,必須指明變數地址,例如: scanf("%f",&f);
20、程序運行輸出了錯誤的結果,可以排除下列哪一個因素( )。
A.演算法錯誤 B、運行時輸入數據錯誤
C、未通過編譯 D、系統資源配置不當
21、要為字元型變數a賦初值,下列語句中哪一個是正確的( )。
A、char a=』3』; B、char a="3";
C、char a=%; D、char a=*;
22、數組定義為"int a[4][5];", 引用"a[1]+3"表示( )。
A、a數組第1行第3列元素的地址 B、a數組第1行第3列元素的值
C、a數組第4行的首地址 D、a數組第4列的首地址
三、程序閱讀
1、以下程序的輸出結果為 。
main()
{ int x=2;
while (x--);
printf(「%d\n」,x);
}
2、以下程序的運行結果是 。
main()
{ int m=5;
if (m++ > 5) printf(「%d\n」,m);
else printf(「%d\n」, m――);
}
3、當執行以下程序段後,i的值為 、j的值為 、k的值為 。
int a,b,c,d,i,j,k;
a=10; b=c=d=5; i=j=k=0;
for( ; a>b; ++b) i++;
while (a>++c) j++;
do k++; while (a>d++);
4、以下程序的輸出結果是 。
main()
{ int k=2,m=4,n=6;
int *pk=&k, *pm=&m, *p;
*(p=&n)=*pk*(*pm);
printf(「%d\n」,n);
}
5、以下程序的輸出結果是 。
fun1(int a, int b)
{ int c;
a+=a; b+=b;
c=fun2 ( a, b );
return c*c;
}
fun2( int a, int b)
{ int c;
c=a*b%3;
return c;
}
main()
{ int x=11,y=19;
printf(「%d\n」, fun1(x,y));
}
6、以下程序的輸出結果是 z= , r= 。
func(int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf(「z=%d,r=%d\n」,z,r);
}
7、以下程序的輸出結果為 .
main()
{ int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];
for(i=0;i<2;i++)
{ if(i==0)
aa[i][i+1]=*p+1;
else ++p;
printf(「%d」,*p);
}
printf(「\n」);
}
8、下列程序運行的輸出結果: , 。
#define X 5
#define Y X+1
#define Z Y*X/2
main()
{ int a;
a=Y;
printf("%d,%d\n",Z,--a);
}
四、程序填空
findmax返回數組s中最大元素的下標,數組中元素的個數由t傳入,請填空 。
findmax(int s[ ], int t)
{ int k,p;
for(p=0, k=p; p<t; p++)
if (s[p]>s[k]) ;
return ;
}
有以下程序段:
s=1.0;
for (k=1; k<=n; k++) s=s+1.0/(k*(k+1));
printf(「%f\n」,s);
請填空,使下面的程序段的功能完全與之等同。
s=0.0;
;
k=0;
do
{ s=s+d;
;
d=1.0/(k*(k+1));
}
while( );
printf(「%f\n」,s);
3、 以下程序統計從終端輸入的字元中每個大寫字母的個數,4、 num[0]中統計字母A的個數,5、 其他依次類推。用回車符結束輸入,6、 請填空。
#include 「stdio.h」
#include 「ctype.h」
main()
{ int num[26]={0}, i ;
char c;
while(( )!=』\n』)
if (isupper(c)) num[ ]+=1;
for( i=0; i<26; i++)
if (num[i]) printf(「%c: %d\n」, i+』A』,num[i]);
}
4、以下fun函數的功能是將一個字元串的內容顛倒過來,請填空。
#include 「string.h」
void fun(char str[])
{ int i,j,k;
for(i=0,j= ; i<j; i++, )
{ k=str[i]; str[i]=str[j]; str[j]=k; }
}
5、以下程序的功能是:從鍵盤上輸入若干學生的成績,統計並輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。
main()
{ float x,amax,amin;
scanf(「%f」,&x);
amax=x; amin=x;
while( )
{ if ( x>amax ) amax=x;
else if (x<amin) ;
;
}
printf(「\namax=%f\namin=%f\n」,amax,amin);
}
6、輸入若干字元,分別統計數字字元的個數、英文字母的個數,當輸入換行符時輸出統計結果,運行結束。
#include <stdio.h>
void main()
{ char ch; ;
while(( )!='\n')
{if(ch>='0'&&ch<='9') s1++;
if((ch>='a' && ch<='z')|| ) s2++;}
printf(「%d,%d\n」,s1,s2);
}
編程題
輸入一行數字字元(以回車符結束輸入),請用數組元素作為計數器來統計每個數字字元的個數,並輸出統計結果。用下標為0的元素統計字元』0』的個數,下標為1的元素統計字元』1』的個數,…。
#include<stdio.h>
main()
{
}
2、下面findmax函數將計算數組中的最大元素及其下標值和地址值,請編寫*findmax()函數。
#include<stdio.h>
*findmax(int *s, int t, int *k)
{
}
main()
{ int a[10]={12,23,34,45,56,67,78,89,11,22},k,*add;
add=findmax(a,10,&k);
printf(「%d,%d,%o\n」,a[k],k,add);
}
3、編寫程序,求1-3+5-7+…-99+101的值。
#include <stdio.h>
main()
{ }
4、以下程序將字元串中的第m個字元開始的全部字元復製成另一個字元串,在主函數中輸入字元串及m的值並輸出復制結果,在被調用函數str中完成復制。請編寫str函數。
#include<stdio.h>
#include<string.h>
main()
{ int m;
char str1[80], str2[80];
printf(「Please input a string :\n」);
gets(str2);
printf(「Input m:\n」);
scanf(「%d」,&m);
if (strlen(str2)<m ) printf(「error input!\n」);
else
{ str(str1,str2,m);
printf(「Result is :%s\n」,str1);
}
}
void str(char *p1,char *p2,int m)
{
}
編寫函數invert將數組中的數按顛倒的順序重新存放。在操作時,只能藉助一個臨時存儲單元而不得另外開辟數組。
/*參數n為數組中的元素個數*/
void invert(int a[ ],int n)
{
}
6、函數maxmin完成的功能是:對傳送過來的三個數選出最大和最小數,並通過形參傳回調用函數。試編寫該函數,
main()
{ int a, b, c, max,min;
printf(「please input three integer:\n」);
scanf(「%d,%d,%d」,&a,&b,&c);
maxmin(a,b,c,&max,&min);
printf(「a=%d,b=%d,max=%d,min=%d\n」,a,b,c,max,min);
}
void maxmin(int a, int b, int c, int *max, int *min)
{
}
❷ 計算機二級考試C語言模擬試題二
1. 運算符________的優先順序最高。
A.[ ]
B. +=
C. ?:
D.++
2.main( )
{ int n; ( n=6*4,n+6),n*2; printf(“n=%d ”,n); }
此程序的輸出結果是______________.
A.30
B. 24
C. 60
D. 48
3.若有如下定義,則__________是對數組元素的正確的引用。.
int a[10] , *p ; p=a ;
A. *&a[10]
B. a[11]
C. *(p+11)
D. *p *p *p
4.設整型變數n的值為2,執行語句“n+=n-=n*n;”後,n的值是__________
A. 0
B. 4
C. - 4
D. 2
5.各種基本數據類型的存貯空間正確的長度排列為__________。
A.Char
C.Char
6.下面的變數說明中__________是正確的。
A.char:a, b, c;
B.char a; b; c;
C.char a, b, c;
D.char a, b, c
7.表達式y=(13>12?15:6>7?8:9)的值為____________ 。
A 9
B 8
C 15
D. 1
8.若x=5,y=3 則y*=x+5; y的值為___________.
A. 10
B. 20
C. 15
D. 30
9.能正確表示a和b同時為正或同時為負的邏輯表達式是_________。
A.a>=0||b>=0)&&(a<0 ||b<0)
B.(a>=0 && b>=0)&&(a<0 && b<0)
C.(a+b>0) &&(a+b<=0)
D. a*b>0
10.C語言中,合法的字元型常數是_________。
A.‘A’
B.“A”
C. 65
D. A
11.已有定義 int x=3, y=4, z=5;則表達式“!(x+y)+z-1&&y+z/2”的值是________。
A.6
B.0
C.2
D.1
12.若變數c為char類型,能正確判斷出c為小寫字母的表達式是_______。
A.’a’<=c<=’z’
B. (c>=’a’) || (c<=’z’)
C.(‘a’<=c) and (‘z’>=c)
D. (c>=’a’) && (c<=’z’)
13.設有定義:long x=-123456L; 則以下能夠正確輸出變數x值的語句是_______。
A.printf(“x=%d ”,x)
B.printf(“x=%ld ”,x)
C.printf(“x=l ”,x)
C.printf(“x=%D ”,x);
14.從循環體內某一層跳出,繼續執行循環外的語句是:___________。
A. break語句
B.return語句
C.continue語句
D.空語句。
15.C語言用_______表示邏輯“真”值。
A.true
B.t或y
C.非零整型值
D.整型值0
16.為了避免嵌套的條件分支語句if—else 的二義性,C語言規定:C程序中的else總是與_____組成配對關系。
A.縮排位置相同的if
B.在其之前未配對的if
C.在其之前未配對的最近的if
D.同一行上的if
17.在函數中默認存儲類型說明符的變數應該是________存儲類型。
A.內部靜態
B. 外部
C.自動
D. 寄存器
18.C語言中以只讀方式打開一個文件應選擇_______________參數。
A.“r”
B.“w”
C.“rb”
D.“a”
19.設有數組定義:char array[]=”student”;則數組所佔的存貯空間為__________。
A.6個位元組
B. 7個位元組
C. 8個位元組
D. 9個位元組
20.根據C語言的語法規則,下列________個是不合法標識符。
A.do
B. Name
C. R5
D. _exam
二、判斷題
1. C 語言源程序文件通過了編譯、連接之後 , 生成一個後綴為 .EXE 的文件。 ( )
2.在 C 程序中 , 函數既可以嵌套定義 , 也可以嵌套調用。( )
3.在 C 程序中 ,APH 和 aph 代表不同的變數。( )
4.表達式 0195 是一個八進制整數。( )
5.Continue語句的作用是結束本次循環。( )
6.Extern變數的.生命期是整個程序執行期。 ( )
7.C語言中字元串的結束符是’