- 相關推薦
c語言二級考試真題
歡迎參加 C 語言二級考試!本次考試真題將全面檢驗你的 C 語言編程能力。題目涵蓋多種題型,從基礎語法到復雜算法,挑戰(zhàn)與機遇并存。認真審題,冷靜作答,發(fā)揮出你的最佳水平。相信通過這次考試,你能更好地認識自己的實力,為未來的學習和職業(yè)發(fā)展打下堅實基
一、單選題 ( 本大題 10 道小題 ,每小題 1.5 分,共15 分),從下面題目給出的A、B、C、D四個可供選擇的答案中選擇一個正確答案。
1.下面標識符中,可以作為合法變量名的是( )。
A.m@q
B.Mo_day
C.mn/5
D.char
2.設有如下語句:
int s,num;
s=1005;num=2;
則表達式(float)s/num的值是()。
A.502.000000
B.502
C.502.500000
D.503.000000
3.設有如下定義語句:
chara[10]="ABC";
則printf("%s" , a+1);的輸出結果為( )。
A.ABC
B.C
C.AB
D.BC
4.下列語句的輸出結果是( )。
inta=0123,b=0456;
printf("%o ",b-a);
A.0456
B.0123
C.333
D.579
5.以下的for語句循環(huán)執(zhí)行的次數(shù)是()。
for(x=0,y=0;(y!=20&&(x<20));x++);
A.無限次
B.不確定
C.20次
D.19次
6.關于局部變量,下列說法正確的是( )。
A.定義該變量的程序文件中的函數(shù)都可以訪問
B.定義處以下的任何語句都可以訪問
C.形式參數(shù)也是一種局部變量,可用于函數(shù)之間傳遞數(shù)據(jù)
D.定義在復合語句中的局部變量,允許在該復合語句外訪問
7.有如下語句:
chars[20]="welcome";
char*ps=s;
則不能引用字母c的表達式是( )。
A.ps+3
B.s[3]
C.ps[3]
D.ps+=3,*ps
8.設有如下語句:
int x,*p=&x;
則*&x相當于( )。
A.x
B.p
C.&x
D.&*p
9.若在fopen函數(shù)中使用文件的方式是"ab",該方式的含義是( )。
A.為讀/寫打開一個文件
B.向二進制文件尾增加數(shù)據(jù)
C.為輸出打開一個文本文件
D.為讀/寫建立一個新的二進制文件
10.建立了如下圖所示的鏈表結構,p,q為指向結點的指針。p指向當前數(shù)據(jù)為M的結點,以下( )語句段能夠輸出p所指結點的直接后繼結點的數(shù)據(jù)項。
A.printf("%c",p->next);
B.printf("%c",p->data);
C.q=p->next; printf("%c",q);
D.p = p->next;
printf("%c",p->data);
二、程序填空題 ( 本大題 2 道小題 ,每空 2.5 分,共20 分)。
1.程序功能:從鍵盤輸入一個整數(shù),查找是否在數(shù)組中有相同的數(shù)值,如果有,則輸出該值在數(shù)組中的位置,如果沒有,則輸出“not find”,結果請輸出到文件out2.txt中。
#include
int main(void)
{
inta[10]={12,-5,0,45,100,-89,33,260,-1,92},i,x;
FILE *fp;
fp=fopen("out2.txt",_____(1)_____);
printf("input x:");
scanf("%d",_____(2)_____);
for(i=0;i<10;i++)
if(x==a[i])
_____(3)_____;
if(i<10)
fprintf(fp,"the pos of x is:%d ",i);
else
fprintf(fp,"no find ");
_____(4)_____; /* 關閉文件 */
return 0;
}
2.程序功能:輸入一個包含數(shù)字的字符串,把字符串中的數(shù)字字符轉換成數(shù)字,存放到數(shù)組中并輸出。例如:輸入aBcD123e45XYZ682,輸出結果為:12345682。
#include
int fun(char s[],int arr[],int num)
{
inti,n=0;
for(i=0;i { if(_____(1)_____ ) { arr[n] = _____(2)_____; n++; } } return n; } int main(void) { charstr[80]; int arr[80]; intnum=0,n,i; printf("Enter a string:
"); gets(_____(3)_____ ); while(str[num]!=