1:設 int a[ ]={1,2,3,4,5},*p=a;則陣列元素的正確表示是
A.a[2]
B.&(a+1)
C.a[5]
D.&p
2:C語言中計算a的3次方,正確的表達是
A.a^3
(a,3)
C.a**3
r(a,3)
3:下列運算子中,優先順序最高的是
A.[]
B.++
C.%
D.&&
4:以“只讀”方式開啟文字檔案 a: , 下列語句中哪一個是正確的
=fopen( ” a: ” , ” ab ” )
=fopen( ” a: ” , ” a ” )
=fopen( ” a: ” , ” wb ” )
=fopen( ” a: ” , ” r ” )
5:c語言對檔案的操作提供了提供了若於個標準庫函式,其中對格式化讀函式fscanf的函式呼叫正確格式是
nf(檔案指標,格式控制字串,輸入項表);
nf(格式控制字串,輸入項表,檔案指標);
nf(格式控制字串,檔案指標,輸入項表);
nf(檔案指標,輸入項表,格式控制字串);
6:對於while語句,錯誤的說法是
A.用條件控制迴圈體的執行次數
B.迴圈體至少要執行一次
C.迴圈體有可能一次也不執行
D.迴圈體中可以包含若干條語句
7:設有程式
#include
main()
{
int i,j;
for (i=0,j=1;i <=j+1;i+=2,j--)
printf("%d ",i);
}
在執行上述程式時,for語句中迴圈體的執行次數是
A.3
B.2
C.1
D.0
8:main()
{ int x=1,y=1;
y=x-- ;
printf( “ %d,%d ” ,x,y);
}執行結果為
A.0 , 0
B.0 , 1
C.1 , 0
D.1 , 1
9:函式呼叫語句“ f((e1,e2),(e3,e4,e5)) ”中引數的個數是
A.1
B.2
C.3
D.5
10:執行語句“ for(d=0;d!=60; d+=0.6) s+=d; ”時,
A.迴圈在 d 等於 60 時終止
B.迴圈在 d 大於 60 時終止
C.迴圈在 d 小於 60 時終止
D.迴圈在 d 大於 60 後繼續
11:使用語句scanf(″a=%f, b=%f″, &a, &b);輸入變數a、b的值(□代表空格),正確的是
A.1.25,2.4
B.1.25□2.4
C.a=1.25, b=2.4
D.a=1.25□b=2.4
12:全域性變數的儲存型別可以定義為
或static
rn或register
或extern
rn或static
13:呼叫函式時,若實參是一個數組名,則向函式對應的形參傳送的是
A.陣列的.長度
B.陣列的首地址
C.陣列第一個元素的值
D.整個陣列元素的值
14:若變數已正確定義並且指標p已經指向變數x, 則*&x相當於
A.x
B.p
C.&x
D.&*p
15:編譯程式的功能是
A.將組合語言程式轉換為目標程式
B.將組合語言程式轉換為高階語言程式
C.將高階語言程式轉換為目標程式
D.將高階語言程式轉換為組合語言程式
簡答題
16:Write a program to count blanks, tabs, and newlines.
17:硬碟上儲存有一個密碼錶,文字檔案格式,檔名為“code.txt”,內容如下:
abcdefghijklmnopqrstuvwxyz
ushecginpaywdqmlxbozrtfvjk
試編寫程式實現一個簡單的加密程式,迴圈讀取使用者輸入,按此密碼錶將字元進行替換,
並直接列印輸出;例如“baidu”將被替換成“super”。
18:int a[3];
a[0]=0; a[1]=1; a[2]=2;
int *p, *q;
p=a;
q=&a[2];
則a[q-p]=?
19:在某工程中,要求設定一絕對地址為0x67a9的整型變數的值為0xaa66。編譯器是一個純粹的ANSI編譯器。寫程式碼去完成這一任務。
20:請定義一個巨集,比較兩個數a、b的大小,不能使用大於、小於、if語句。
21:C/C++原始碼中,檢查花括弧“(”與 “)”,“{”與“}”)是否匹配,若不匹配,則輸出不匹配花括弧所在的行與列。
22:下面的程式碼就使用了__interrupt關鍵字去定義了一箇中斷服務子程式(ISR),請評論一下這段程式碼的錯誤。
__interrupt doublepute_area (double radius)
{
double area = PI * radius * radius;
printf(" Area = %f", area);
return area;
}
23:程式填空
把文字檔案 複製到文字檔案 中,要求僅複製 中的英文字元。
#include
void main()
{ _______ char ch;
fpd1=fopen( ″ ″ , ″ r ″ );_______
while(fscanf(fpd1, ″ %c ″ ,&ch)_______)
if(_______||ch>= ′ a ′ &&ch <= ′ z ′ )fprintf(fpd2, ″ %c ″ ,ch);
fclose(fpd1);fclose(fpd2);
}