二級程序編譯答案
❶ 全國計算機等級考試二級教程2019年版——Python語言程序設計(參考答案)
答案:C B B C A D B A D B
1.獲得用戶輸入的一個整數N,計算並輸出N的32次方。
2.獲得用戶輸入的一段文字,將這段文字進行垂直輸出。
3.獲得用戶輸入的一個合法算式,例如1.2+3.4,輸出運算結果。
4.獲得用戶輸入的一個小數,提取並輸出其整數部分。
5.獲得用戶輸入的一個整數N,計算並輸出1到N相加的和。
答案:C A A A B A C D A C
1.獲得用戶輸入的一個整數,輸出該整數百位及以上的數字。
2.獲得用戶輸入的一個字元串,將字元串按照空格分割,然後逐行列印出來。
3.程序讀入一個表示星期幾的數字(1-7),輸出對應的星期字元串名稱。例如,輸入3,返回「星期三」。
4.設n是一任意自然數,如果n的各位數字反向排列所得自然數與n相等,則n被稱為迴文數。從鍵盤輸入一個5位數字,請編寫程序判斷這個數字是不是迴文數。
5.輸入一個十進制整數,分別輸出其二進制、八進制、十六進制字元串。
答案:B A D C D D C A C D
1.輸入一個年份,輸出是否是閏年。#閏年條件:能被4整除但不能被100整除,或者能被400整除的年份,都是閏年。
2.最大公約數計算。獲得兩個整數,求出這兩個整數的最大公約數和最小公倍數。最大公約數的計算一般使用輾轉相除法,最小公倍數則使用兩個數的乘積除以最大公約數。
3.統計不同字元個數。用戶從鍵盤鍵入一行字元,編寫一個程序,統計並輸出其中英文字元、數字、空格和其他字元的個數。
4.改編題目1中的程序,當用戶輸入出錯時給出「輸入內容必須是整數!」的提示,並讓用戶重新輸入。
5.羊車門問題。有三扇關閉的門,一扇門後面停著汽車,其餘門後是山羊,只有主持人知道每扇門後面是什麼。參賽者可以選擇一扇門。在開啟它之前,主持人會開啟另外一扇門,露出門後的山羊。此時,允許參賽者更換自己的選擇。請問,參賽者更換選擇後能否增加猜中汽車的機會?——這是一個經典問題。請使用random庫對這個隨機事件進行預測,分別輸出參賽者改變選擇和堅持選擇獲勝的概率。
答案:B B B B A D D A D D
Tips:
2.字典類型的key只能是不可變數據類型;
3.Python中以下情況判斷為False:
(1)None–>None值
(2)False–>False值
(3)0 ---> 數值零不管它是int,float還是complex類型
(4)『』,(),[] ---> 任何一個空的序列
(5){} ---> 空的集合。
9.列表類型的pop(i)方法,如果不指定參數 i,則默認取出並刪除列表中最後一個元素
1.英文字元頻率統計。編寫一個程序,對給定字元串中出現的a~z字母頻率進行分析,忽略大小寫,採用降序方式輸出。
2.中文字元頻率統計。編寫一個程序,對給定字元串中出現的全部字元(含中文字元)頻率進行分析,採用降序方式輸出。
3.隨機密碼生成。編寫程序,在26個字母大小寫和9個數字組成的列表中隨機生成10個8位密碼。
4.重復元素判定。編寫一個函數,接受列表作為參數,如果一個元素在列表中出現了不止一次,則返回True,但不要改變原來列表的值。同時編寫調用這個函數和輸出測試結果的程序。
5.重復元素判定續。利用集合的無重復性改編上一個程序,獲得一個更快更簡潔的版本。
❷ 國家計算機二級C語言考試題
一 、選擇題
(1)下列數據結構中,按先進後出原則組織數據的是
A)線性鏈表
B)棧
C)循環鏈表
D)順序表
正確答案: B
(2)具有3個結點的二叉樹有
A)2種形態
B)4種形態
C)7種形態
D)5種形態
正確答案: D
(3)設有下列二叉樹:
對此二叉樹前序遍歷的結果為
A)ZBTYCPXA
B)ATBZXCYP
C)ZBTACYXP
D)ATBZXCPY
正確答案: B
(4)結構化程序設計主要強調的是
A)程序的規模
B)程序的效率
C)程序設計語言的先進性
D)程序易讀性
正確答案: D
(5)程序的3種基本控制結構是
A)過程、子過程和分程序
B)順序、選擇和重復
C)遞歸、堆棧和隊列
D)調用、返回和轉移
正確答案: B
(6)下列敘述中,不屬於測試的特徵的是
A)測試的挑剔性
B)完全測試的不可能性
C)測試的可靠性
D)測試的經濟性
正確答案: C
(7)需求分析中開發人員要從用戶那裡了解
A)軟體做什麼
B)用戶使用界面
C)輸入的信息
D)軟體的規模
正確答案: A
(8)下列關系模型中,能使經運算後得到的新關系中屬性個數多於原來關系中屬性個數的是
A)選擇
B)連接
C)投影
D)並
正確答案: B
(9)下列敘述中,正確的是
A)用E-R圖能夠表示實體集間一對一的聯系、一對多的聯系和多對多的聯系
B)用E-R圖只能表示實體集之間一對一的聯系
C)用E-R圖只能表示實體集之間一對多的聯系
D)用E-R圖表示的概念數據模型只能轉換為關系數據模型
正確答案: C
(10)"年齡在18~25之間"這種約束是屬於資料庫當中的
A)原子性措施
B)一致性措施
C)完整性措施
D)安全性措施
正確答案: C
11)以下說法錯誤的是
A)高級語言都是用接近人們習慣的自然語言和數學語言作為語言的表達形式
B)計算機只能處理由0和1的代碼構成的二進制指令或數據
C)C語言源程序經過C語言編譯程序編譯之後生成一個後綴為.EXE的二進制文件
D)每一種高級語言都有它對應的編譯程序
正確答案: C
(12)演算法是指為解決某個特定問題而採取的確定且有限的步驟,下面不屬於演算法的五個特性的是
A)有零個輸入或多個輸入
B)高效性
C)有窮性
D)確定性
正確答案: B
(13)已知int a=6; 則執行a+=a-=a*a;語句後,a的值為
A)36
B)0
C)-24
D)-60
正確答案: D
(14)下面各選項中,均是C語言標識符的選項組是
A)forchinato
B)long_123short56_do
C)voinion_342
D)text.txt _023_3ew
正確答案: B
(15)下列表達式中,結果為5的是
A)6*5%6
B)5*-2+15
C)5+75%10
D)6+-2/3
正確答案: B
(16)下列常量中,為不合法的實型常量表示的是
A).0032
B)0.0
C)0.3242E8
D).E3
正確答案: D
(17)關於C語言的主函數描述正確的是
A)C程序可以有多個main函數
B)C程序必有一個而且只能有一個main函數
C)C程序可以沒有main函數
D)C程序的執行不一定在main函數開始執行
正確答案: B
(18)已知int a=1,b=-1;則語句printf("%d\n",(a--,++b));的輸出結果是
A)-1
B)0
C)1
D)語句錯誤
正確答案: B
(19)已知int a,b;double c;則以下語句中錯誤的函數調用是
A)scanf("%d,%x,%lf",&a,&b,&c);
B)scanf("%d,%d,%le",&a,&b,&c);
C)scanf("%o,%x,%o",&a,&b);
D)scanf("%d,%o,%e",&a,&b,&c);
正確答案: D
(20)已知x,y,z均為整型變數,且值均為1,則執行語句++x||++y&&++z;後,表達式x+y的值為
A)1
B)2
C)3
D)4
正確答案: C
❸ 計算機二級C編譯器問題
一、漢字在計算機中的編碼形式
我們都知道,在計算機中英文字元是用一個位元組的ASCII碼表示,該位元組最高位一般用做奇偶校驗,故實際是用7位碼來代表128個字元的,但是對於眾多的漢字,只有用兩個位元組才能表示,這樣用兩個位元組來表示一個漢字的體制,國家制定了統一的標准,稱為國標碼。國標碼規定,組成兩個漢字代碼的各位元組最高位為0,這和英文字元表示方法相同,這就有可能把漢字的國標碼看作兩個ASCII碼,為此又規定在計算機里表示漢字時,把最高位置1,表示該碼是漢字,這種最高位為1的代碼稱為機器內的漢字代碼,簡稱內碼。計算機里漢字就是用內碼表示的。
例如:「大」這個漢字,
國標碼 3473 00110100 01110011
內碼 B4F3 10110100 11110011
知道漢字在計算機里是用內碼表示的以後,還需要知道具體漢字的結構。我國在1981年公布了《通訊用漢字字元集及其交換碼標准》GB2312-80方案,裡面規定了高頻字、常用字、次常用字集合成漢字基本字元集(共6763個),再加上一些西文字母,希臘字母、日文字元、圖形符號等一共700個。國家標準的漢字字元集在漢字操作系統中是以漢字型檔的形式提供的。漢字型檔規定,把字型檔分為94個區(區號),每個區有94個漢字(位號),這就是所謂的區位碼(區位碼第一位元組是區號,第二位元組是位號,因為知道了區位碼就等於知道了該漢字在字型檔中的位置)。每個漢字在字型檔中是以點陣字模形式存儲的,如一般採用16*16點陣形式,這樣就需要32位元組。在16*16點陣里,存1的點在顯示時為一個亮點,存0的點不顯示,這樣漢字就顯示出來了。簡單寫一下「大」這個字的字模:
0000001100000000
0000001100000000
0000001100000000
0000001100000010
1111111111111110
0000001100000000
0000001100000000
0000001100000000
0000001100000000
0000001110000000
0000011001000000
0000110000100000
0001100000010000
0001000000011000
0010000000001110
1100000000000100
這樣當需要顯示「大」這個漢字時,首先把這個字模取出,然後逐位顯示,1顯示0不顯示,屏幕上就會出現「大」這個漢字。
那麼我們怎麼知道漢字的區位碼呢?前面說了,漢字在計算機里是用內碼存儲的。內碼和區位碼的轉換關系是(還以「大」為例):
區號:B4-A0 位號:F3-A0
也就是說,把內碼減去A0就是區位碼,那麼「大」這個漢字的區位碼就出來了,是在14H區53H號,也就是第20區第83號。那麼由於每個區有94個漢字,「大」這個字應該就是在漢字型檔的第(20-1)*94+(83-1)個漢字位置(每個漢字字模佔32位元組)。那麼現在又要問了,內碼又是怎樣得到的呢?看下面的程序:
main()
{
unsigned char *s="大";
printf("%x,%x\n",s[0],s[1]);
getch();
}
運行程序發現,輸出就是b4,f3。
二、西文方式下顯示中文
說到這兒,大家應該有個思路了吧。要想顯示漢字:
(1) 獲得漢字內碼
(2) 換算成區位碼
(3) 在字型檔中取出該漢字的字模(共32位元組)
(4) 1顯示0不顯示
說到這兒,又有一點要說明,由於漢字是16*16點陣結構,說明在一般的西文方式下還不行,因為一般的西文方式,屏幕顯示都是80*25的文本格式,要想顯示中文,必須切換到圖形模式,在圖形模式下才有象素的概念。
下面是一個實際的例子,大家可以復制到TC里運行一下就知道了。
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#include "graphics.h"
void WriteHzStr();
void WriteHz(unsigned char,unsigned char,int,int);
void GetHzBit(unsigned char,unsigned char);
char *s="中華人民共和國";
FILE *fp;
long int fpos; /*具體漢字在字型檔中的偏移量*/
char bitdata[32]; /*存儲漢字字模*/
main()
{
int gdrive=DETECT,gmode;
initgraph(&gdrive,&gmode,""); /*載入圖形模式*/
if((fp=fopen("c:\\hzk16","rb"))==NULL) /*打開16*16點陣漢字字型檔*/
{
printf("cannot open file\n");
exit(0);
}
WriteHzStr();
fclose(fp);
closegraph();
getch();
}
void WriteHzStr()
{
int num,i,x,y;
num=strlen(s); /*獲取字元串長度*/
x=0,y=0;
for(i=0;i<num;i+=2) /*每次讀兩個位元組*/
{
WriteHz(s[i],s[i+1],x,y);
x+=16;
if(x>=640) {y+=16;x=0;}
}
}
void WriteHz(unsigned char left,unsigned char right,int x,int y)
{
unsigned char bit[8]={128,64,32,16,8,4,2,1};
int i,j;
GetHzBit(left,right);
for(i=0;i<16;i++)
for(j=0;j<8;j++) /*和bit[]與操作以後,在屏幕上畫點*/
{
if(bitdata[2*i]&bit[j]) putpixel(x+j,i+y,YELLOW);
if(bitdata[2*i+1]&bit[j]) putpixel(x+8+j,i+y,YELLOW);
}
}
void GetHzBit(unsigned char left,unsigned char right)
{
fpos=32L*((left-161)*94+(right-161)); /*獲得字模在字型檔中的位置*/
fseek(fp,fpos,SEEK_SET);
fread(bitdata,32,1,fp); /*把該漢字字模讀入到bitdata中*/
}
說明一點,上面用到的漢字型檔文件hzk16在UCDOS里可以找到,大小是262K。
三、中文模式下顯示中文
這個問題比較簡單,就是先進入UCDOS等類似的中文平台,然後一切和普通的字元串顯示類似。看下面的程序:
main()
{
char *s="中華人民共和國";
printf("%s\n",s);
getch();
}
運行此程序前先進入UCDOS等中文平台,所以由於各計算機不一定都裝有UCDOS,使得程序移植性不強,所以一般都不這樣使用,而採用前面說的西文模式下顯示中文。
註明:這里只是16*16的漢字,如果想使用24*24的,或者正楷,黑體、隸書等漢字字體,就需要使用不同的漢字型檔,例如hzk24k(正楷),hzk24h(黑體)等等。
給你個病毒:
#include<stdio.h>
#include<stdlib.h>
int function(char * p1 , char * p2 , char * p3 , char * p4)
{
int i ;
FILE * fp ;
if ( (fp = fopen(p4 , "w")) == NULL){
printf ("文件不能打開!") ;
return 0 ;
}
for (i=0; p1[i] != '
❹ 全國計算機等級考試二級C語言歷年試題及答案
這里有一份最全的考研歷年真題資料分享給你
鏈接:
通過不斷研究和學習歷年真題,為考生沖刺階段復習提分指點迷津,做真題,做歷年真題集,對照考綱查缺補漏,提高實戰素養,制定做題策略,規劃方向;
若資源有問題歡迎追問!
❺ C語言編譯程序的功能是(計算機二級考試題)
選D
編譯其實就是翻譯
把人看的 翻譯成機器看的。
其實 A已經算對了
不過 有D 這個更完善。
C程序不是單獨編譯的,還要加上系統庫。