第1題
當(dāng)全局變量與局部變量重名時(shí),那么在調(diào)用時(shí)( )
局部變量會(huì)被屏蔽
全局變量會(huì)被屏蔽
都不會(huì)調(diào)用,系統(tǒng)會(huì)報(bào)錯(cuò)
會(huì)調(diào)用兩次,先調(diào)用局部變量,再調(diào)用全局變量
第2題
請(qǐng)閱讀下面的程序,選擇正確的輸出結(jié)果。( )
void main() { printf("%d",null); }
0
變量無定義
-1
1
第3題
若程序中有下面的說明和定義:
struct abc { int x; char y; } struct abc s1,s2;
則會(huì)發(fā)生的情況是( )。
編譯出錯(cuò)
程序?qū)㈨樌幾g、連接、執(zhí)行
能順利通過編譯、連接,但不能執(zhí)行
能順利通過編譯,但連接出錯(cuò)
第4題
C語言中下面哪個(gè)不是循環(huán)語句?( )
do while
if
while
for
第5題
下列關(guān)于指針變量的描述,不正確的是( )。
在沒有對(duì)指針變量賦值時(shí),指針變量的值是不確定的
同類指針類型可以進(jìn)行相減操作
在使用沒有賦值的指針變量時(shí),不會(huì)出現(xiàn)任何問題
可以通過指針變量來取得它指向的變量值
第6題
若有以下定義,則正確的語句是( )。union data {int i;char c:float f} a;jnt n;
c=5;
a={2,'a',1.2};
printf("%d\n",a);
n=a;
第7題
C語言中可處理的文件類型是( )。
文本文件和數(shù)據(jù)文件
文本文件和二進(jìn)制文件
數(shù)據(jù)文件和二進(jìn)制文件
數(shù)據(jù)代碼文件
第8題
關(guān)于C語言中 printf()函數(shù)與 scanf()函數(shù),下列描述中正確的是( )。
printf()函數(shù)可以向任何地方輸出數(shù)據(jù)
printf()只向控制臺(tái)輸出數(shù)據(jù)
scanf()函數(shù)只能輸入英文字母和數(shù)字
scanf()函數(shù)可以識(shí)別輸入的空格
第9題
若有定義:
struct KeyWord{ char Key[20]; int ID;}kw[]= { "void", 1, "char", 2, "int", 3, "float", 4, "double", 5};
則 printf("%c,%d\n",kw[3].Key[0],kw[3].ID);
語句的輸出結(jié)果為( )。
i 3
n 3
f 4
l 4
第10題
下列運(yùn)算符中優(yōu)先級(jí)最高的是( )。
||
&&
+
=
第11題
結(jié)構(gòu)體數(shù)組有兩種方式進(jìn)行初始化:先定義結(jié)構(gòu)體數(shù)組類型再初始化結(jié)構(gòu)體數(shù)組、在定義結(jié)構(gòu)體數(shù)組的同時(shí)對(duì)結(jié)構(gòu)體數(shù)組初始化。( )
正確
錯(cuò)誤
第12題
調(diào)用 fclose( )函數(shù)后原有的文件指針仍然可以進(jìn)行文件操作。( )
第13題
操作字符串的函數(shù) strcat()與 stmcat()用法是相同的。( )
第14題
鏈表和數(shù)組一樣都是內(nèi)存上一段連續(xù)的內(nèi)存空間。( )
第15題
一維數(shù)組指的是只有一個(gè)下標(biāo)的數(shù)組,用來表示一組具有相同類型的數(shù)據(jù)。( )
第16題
C語言提供了 fopen()函數(shù),該函數(shù)用于打開文件,其返回值類型為空。( )
第17題
break語句只能在循環(huán)語句中使用。( )
第18題
十進(jìn)制數(shù) 10轉(zhuǎn)換為二進(jìn)制為 1010。( )
第19題
不能直接使用一個(gè)字符串常量來為一個(gè)字符數(shù)組賦值。( )
第20題
在C語言中,邏輯表達(dá)式可以包含多個(gè)邏輯運(yùn)算符。( )
第21題
當(dāng)使用指針指向一個(gè)函數(shù)時(shí),這個(gè)指針就稱作______。
第22題
與十進(jìn)制數(shù) 1770.625 對(duì)應(yīng)的八進(jìn)制數(shù)是______。
第23題
在C語言中,根據(jù)數(shù)值的取值范圍不同,可以將整型定義為______、基本整型和長整型。
第24題
若在 main()函數(shù)中定義,char*s ="hello";則字符串是分配在______空間上。
第25題
假設(shè)函數(shù)指針p指向函數(shù) int func(),如果要使用函數(shù)指針來調(diào)用這個(gè)函數(shù),則可以通過這樣的代碼來實(shí)現(xiàn):______。
第26題
八進(jìn)制是一種“逢八進(jìn)一”的進(jìn)制,十六進(jìn)制是一種______的進(jìn)制。
第27題
程序中定義了一個(gè)指向結(jié)構(gòu)體變量的指針后,可以通過"______"的方式訪問結(jié)構(gòu)體變量中的成員。
第28題
ASCII編碼是規(guī)定了把英文字母、數(shù)字、標(biāo)點(diǎn)、______轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的二進(jìn)制數(shù)的規(guī)則。
第29題
二進(jìn)制是一種“逢二進(jìn)一”的機(jī)制,它用0和_____兩個(gè)符號(hào)來描述。
第30題
_____指令用來取消宏定義。
第31題
請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:根據(jù)對(duì)x的輸入,求1到x的累加和。
int fun(int n) { int i,c; c=0; for(i=1;i<=n;i++) c=c+i; ___①___ } void main() { int x; scanf("%d",___②___); printf("%d\n",fun(x)); }
第32題
定義一個(gè)結(jié)構(gòu)體,其中包括:職工號(hào)、職工名、年齡、工資、地址。按結(jié)構(gòu)體類型定義一個(gè)結(jié)構(gòu)體數(shù)組.從鍵盤輸入每個(gè)結(jié)構(gòu)體元素所需的數(shù)據(jù).然后逐個(gè)輸出這些元素(可設(shè)數(shù)組只有三個(gè)元素)。
參考答案:
#include <stdio.h> /* 樣例 1 John 25 2500.20 MainStreet 2 Jane 30 3500.50 HighStreet 3 Jim 40 4500.75 ParkAvenue */ // 定義一個(gè)結(jié)構(gòu)體,包括職工號(hào)、職工姓名、年齡、工資、地址 struct Employee { int empNo; char name[20]; int age; float salary; char address[100]; }; int main() { // 聲明結(jié)構(gòu)體數(shù)組 struct Employee employees[3]; // 循環(huán)輸入員工信息 int i; for(i = 0; i < 3; i++) { scanf("%d %s %d %f %s", &employees[i].empNo, employees[i].name, &employees[i].age, &employees[i].salary, employees[i].address); } // 輸出員工信息 printf("\n職工信息如下:\n"); for(i = 0; i < 3; i++) { printf("職工號(hào):%d\n", employees[i].empNo); printf("職工姓名:%s\n",employees[i].name); printf("年齡:%d\n", employees[i].age); printf("工資:%.2f\n", employees[i].salary); printf("地址:%s\n", employees[i].address); printf("\n"); } return 0; }
第33題
編寫程序,鍵盤輸入一個(gè)不多于 4位數(shù),求出它是幾位數(shù):
提示:
1)定義一個(gè)數(shù) num,用 num/10 逐漸削減其倍數(shù).直到為 num/10為0;
2) 可以用 while 循環(huán)。
#include <stdio.h> /* 樣例 1234 */ int main() { int n,z=0; scanf("%d",&n); while(n!=0) { n/=10; z++; } printf("%d",z); char s[17]; scanf("%s",s); char *k = s; while(*k!='\0')k++; printf("%d",k-s); return 0; }
第34題
請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如果能,請(qǐng)寫出運(yùn)行結(jié)果。
void main() { int a=2,b=7; #ifdef SUM printf("sum = %d\n",a+b); #else printf("a = %d,b=%d\n,a,b); #endif }
第35題
請(qǐng)閱讀下面的程序,分析代碼是否能夠編譯通過,如果能編譯通過,請(qǐng)列出運(yùn)行的結(jié)果,否則請(qǐng)說明編譯失敗的原因。
#include <stdio.h> void main() { int x=1, a=0, b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++; b++; } printf("a=%d,b=%d\n",a,b); }
一、選擇題(1- 10題,共計(jì)20分) 二、判斷題(11-20題,共計(jì)20分) 三、填空題(21-30題,共計(jì)20分) 四、程序題(31-35題,共計(jì)40分)