本文目錄一覽:
請問這道c語言題怎麼做,為什麼是33?
這個結果是33。分析如下:
根據a = age(5),調用了age()函數,傳入5,根據age()函數,返回值是:
age(5) = age(4) + 2
每次根據age()函數去遞歸
age(4) = age(3) + 2
age(3) = age(2) + 2
age(2) = age(1) + 2
所以age(5) = age(1) + 2 + 2 + 2 + 2
根據age(1)返回值為25,最終結果為:33。
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時,表達式ab!=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=abc的值為______________________。
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= =(ab)? a:b; B、c=if(ab)a else b;
C、c=(ab)? a:b; D、(ab)? c=a:c=b;
11、將整型變數a、b中的較大值為變數c賦值,下列語句中正確的是( )。
A、c= =(ab)? a:b; B、c=(ab)? a:b;
C、c=if(ab)a else b; D、(ab)? 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( ; ab; ++b) i++;
while (a++c) j++;
do k++; while (ad++);
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;i2;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; pt; 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; i26; 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= ; ij; 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 ( xamax ) amax=x;
else if (xamin) ;
;
}
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』的個數,…。
#includestdio.h
main()
{
}
2、下面findmax函數將計算數組中的最大元素及其下標值和地址值,請編寫*findmax()函數。
#includestdio.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的值並輸出複製結果,在被調用函數copystr中完成複製。請編寫copystr函數。
#includestdio.h
#includestring.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
{ copystr(str1,str2,m);
printf(「Result is :%s\n」,str1);
}
}
void copystr(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語言第33題為什麼
要緊扣題目,符合語法的賦值語句,賦值語句,賦值語句,所以只能選C。
原創文章,作者:AXRX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133122.html