- 相關推薦
3月全國計算機等級考試二級C語言筆試真題
在社會的各個領域,我們最熟悉的就是考試真題了,考試真題可以幫助主辦方了解考生某方面的知識或技能狀況。還在為找參考考試真題而苦惱嗎?下面是小編為大家收集的3月全國計算機等級考試二級C語言筆試真題,歡迎大家分享。
3月全國計算機等級考試二級C語言筆試真題 1
一、選擇題((1)—(10)每小題2分,(11)—(50)每題1分,共60分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。
(1)下列敘述中正確的是(B)
A)算法的效率只與問題的規模有關,而與數據的存儲結構無關
B)算法的時間復雜度是指執行算法所需要的計算工作量
C)數據的邏輯結構與存儲結構是一一對應的
D)算法的時間復雜度與空間復雜度一定相關
(2)在結構化程序設計中,模塊劃分的原則是(D)
A)各模塊應包括盡量多的功能
B)各模塊的規模應盡量大
C)各模塊之間的聯系應盡量緊密
D)模塊內具有高內聚度、模塊間具有低耦合度
(3)下列敘述中正確的是(A)
A)軟件測試的主要目的是發現程序中的錯誤
B)軟件測試的主要目的是確定程序中錯誤的位置
C)為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作
D)軟件測試是證明軟件沒有錯誤
(4)下面選項中不屬于面向對象程序設計特征的是(C)
A)繼承性
B)多態性
C)類比性
D)封裝性
(5)下列對隊列的敘述正確的是(D)
A)隊列屬于非線性表
B)隊列按“先進后出”原則組織數據
C)隊列在隊尾刪除數據
D)隊列按“先進先出”原則組織數據
(6)對下列二叉樹
A
B C
D E F X
Y Z
進行前序遍歷的結果為(C)
A) DYBEAFCZX
B) YDEBFZXCA
C) ABDYECFXZ
D) ABCDEFXYZ
(7) 某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數為(A)
A) n+1
B) n-1
C) 2n
D) n/2
(8) 在下列關系運算中,不改變關系表中的屬性個數但能減少元組個數的是(B)
A) 并
B)交
C)投影
D)笛卡兒乘積
(9)在E-R圖中,用來表示實體之間聯系的圖形是(C)
A) 矩形
B)橢圓形
C)菱形
D)平行四邊形
(10)下列敘述中錯誤的是(A)
A) 在數據庫系統中,數據的物理結構必須與邏輯結構一致
B) 數據庫技術的根本目標是要解決數據的共享問題
C) 數據庫設計是指在已有數據庫管理系統的基礎上建立數據庫
D)數據庫系統需要操作系統的支持
(11)算法中,對需要執行的每一步操作,必須給出清楚、嚴格的規定,這屬于算法的(C)
A)正當性
B)可行性
C)確定性
D)有窮性
(12)下列敘述中錯誤的是(D)
A)計算機不能直接執行用C語言編寫的源程序
B)C程序經C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件
C)后綴為.obj的文件,經連接程序生成后綴為.exe的文件是一個二進制文件
D)后綴為.obj和.exe的二進制文件都可以直接運行
(13)按照C語言規定的用戶標識符命名規則,不能出現在標識符中的是(B)
A)大寫字母
B)連接符
C)數字字符
D)下劃線
(14)以下敘述中錯誤的是(C)
A)C語言是一種結構化程序設計語言
B)結構化程序有順序、分支、循環三種基本結構組成
C)使用三種基本結構構成的程序只能解決簡單問題
D)結構化程序設計提倡模塊化的設計方法
(15)對于一個正常運行的C程序,以下敘述中正確的是(A)
A)程序的執行總是從main函數開始,在main函數結束
B)程序的執行總是從程序的第一個函數開始,在main函數結束
C)程序的執行總是從main函數開始,在程序的最后一個函數中結束
D)程序的執行總是從程序的第一個函數開始,在程序的最后一個函數中結束
(16)設變量均已正確定義,若要通過scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)(D)
A)10□X□20□Y〈回車〉
B)10□X20□Y〈回車〉
C)10□X〈回車〉
D)10X〈回車〉
20□Y〈回車〉 20Y〈回車〉
(17)若有代數式(其中e僅代表自然對數的底數,不是變量),則以下能夠正確表示該代數式的C語言表達式是(C)
A)sqrt(abs(n^x+e^x))
B) sqrt(fabs(pow(n,x)+pow(x,e)))
C)sqrt(fabs(pow(n,x)+exp(x)))
D) sqrt(fabs(pow(x,n)+exp(x)))
(18)設有定義:int k=0;,以下選項的四個表達式中與其他三個表達式的值不相同的是(A)
A)k++
B)k+=1
C)++k
D)k+1
(19)有以下程序,其中%u表示按無符號整數輸出(B)
main()
{unsigned int x=0xFFFF; /* x的初值為十六進制數 */
printf(“%u\n”,x);
}
程序運行后的輸出結果是
A)-1
B)65535
C)32767
D)0xFFFF
(20)設變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產生錯誤信息的是(C)
A)if(x++);
B)if(x>y&&y!=0);
C)if(x>y) x- -
D)if(y<0) {;}
else y++;
(21)以下選項中,當x為大于1的奇數時,值為0的表達式(D)
A)x%2==1
B)x/2
C)x%2!=0
D)x%2==0
(22)以下敘述中正確的是(C)
A)break語句只能用于switch語句體中
B)continue語句的作用是:使程序的執行流程跳出包含它的所有循環
C)break 語句只能用在循環體內和switch語句體內
D)在循環體內使用break語句和continue語句的作用相同
(23)有以下程序(A)
main()
{int k=5,n=0;
do
{switch(k)
{case1: case3:n+=1; break;
default;n=0;k--;
case2: case4:n+=2;k--;break;
}
printf(“%d”,n);
}while(k>0&&n<5);
}
程序運行后的輸出結果是
A)235
B)0235
C)02356
D)2356
(24)有以下程序
mian()
{int i,j;
for(i=1;i<4;i++)
{for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);
printf(“\n”);
}
}
程序運行后的輸出結果是(B)
A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3
2*1=2 2*2=4 2*2=4 2*3=6
3*1=3 3*3=9
C) 1*1=1 D) 1*1=1
1*2=2 2*2=4 2*1=2 2*2=4
1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9
(25)以下合法的字符型常量是(A)
A)”\x13”
B)”\018”
C)”65”
D)”\n”
(26)在C語言中,函數返回值的類型最終取決于(A)
A)函數定義時在函數首部所說明的函數類型
B)return語句中表達式值的類型
C)調用函數時主函數所傳遞的實參類型
D)函數定義時形參的類型
(27)已知大寫字母A的ASCII碼是65,小寫字母aASCII碼是97,以下不能將變量c中大寫字母轉換為對應小寫字母的語句是(D)
A)c=(c-A)&+’a’
B)c=c+32
C)c=c-‘A’+’a’
D)c=(‘A’+c)&-‘a’
(28)有以下函數
int fun(char *s)
{char *t=s;
while(*t++);
return(t-s);
}
該函數的功能是(B)
A)比較兩個字符的大小
B)計算s所指字符串占用內存字節的個數
C)計算s所指字符串的長度
D)將s所指字符串復制到字符串t中
(29)設已有定義:float x;則以下對指針變量p進行定義且賦初值的語句中正確的是(D)
A)float *p=1024;
B)int *p=(float x);
C)float p=&x;
D)float *P=&x;
(30)有以下程序
#include
main()
{int n,*p=NULL;
*p=&n;
printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\n”,p);
}
該程序試圖通過指針p為變量n讀入數據并輸出,但程序有多處錯誤,以下語句正確的是(A)
A)int n,*p=NULL;
B)*p=&n;
C)scanf(“%d”,&p)
D)printf(“%d\n”,p);
(31)以下程序中函數f的功能是:當flag為1時,進行有由小到大排序;當flag為0時,進行由大到小排序。
void f(int b[],int n,int flag)
{int i,j,t;
for(i=0;i
for (j=i+1;j
if(flag?b[i]>b[j]:b[i]
}
main()
{int a[10]={5,4,3,2,1,6,7,8,9,10},i;
f(&a[2],5,0); f(a,5,1);
for(i=0;i<10;i++) printf(“%d,”a[i]);
}
程序運行后的輸出結果是(B)
A)1,2,3,4,5,6,7,8,9,10,
B)3,4,5,6,7,2,1,8,9,10,
C)5,4,3,2,1,6,7,8,9,10,
D)10,9,8,7,6,5,4,3,2,1,
(32)有以下程序
void f(int b[])
{int i;
for(i=2;i<6;i++) b[i]*=2;
}
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},i;
f(a);
for(i=0;i<10;i++) printf(“%d,”,a[i]);
}
程序運行后的輸出結果是(B)
A)1,2,3,4,5,6,7,8,9,10,
B)1,2,6,8,10,12,7,8,9,10
C)1,2,3,4,10,12,14,16,9,10,
D)1,2,6,8,10,12,14,16,9,10,
(33)有以下程序
typedef struct{int b,p;}A;
void f(A c) /*注意:c是結構變量名 */
{int j;
c.b+=1; c.p+=2;
}
main()
{int i;
A a={1,2};
f(a);
printf(“%d,%d\n”,a.b,a.p);
}
程序運行后的.輸出結果是(D)
A)2,3
B)2,4
C)1,4
D)1,2
(34)有以下程序
main()
{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf(“%d,”,a[i][j]);
}
程序運行后的輸出結果是(A)
A)1,6,5,7,
B)8,7,3,1,
C)4,7,5,2,
D)1,6,2,1,
(35) 有以下程序
main()
{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;
for(i=0;i<3;i++)
for(k=i+i;k<4;k++) if(a[i][i]
for(i=0;i<4;i++)printf(“%d,”,a[0][i]);
}
程序運行后的輸出結果是(B)
A)6,2,1,1,
B)6,4,3,2,
C)1,1,2,6,
D)2,3,4,6,
(36) 有以下程序
void f(int *q)
{int i=0;
for( ; i<5;i++)(*q)++;
}
main()
{int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf(“%d,”,a[i]);
}
程序運行后的輸出結果是(B)
A)2,2,3,4,5,
B)6,2,3,4,5,
C)1,2,3,4,5,
D) 2,3,4,5,6,
(37) 有以下程序
#include
main()
{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”;
strcpy(p+strlen(q),r); strcat(p,q);
printf(“%d%d\n”,sizeof(p),strlen(p));
}
程序運行后的輸出結果是(C)
A)20 9
B)9 9
C)20 11
D)11 11
(38) 有以下程序
#include
main()
{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”
strcat(p,r); Strcpy(p+strlen(q),q);
Printf(“%d \n”,sizeof(p));
}
程序運行后的輸出結果是(B)
A)9
B)6
C)11
D)7
(39) 有以下程序
#include
main()
void f(char p[][10], int n ) /* 字符串從小到大排序 */
{ char t[10]; int i,j;
for(i=0;i
for(j=i+1;j
if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }
}
main()
{char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”};
f(p,5);
printf(“%d\n”,strlen(p[0]));
}
程序運行后的輸出結果是(C)
A) 2
B) 4
C) 6
D) 3
(40) 有以下程序
void f(int n, int *r)
{int r1=0;
if(n%3==0) r1=n/3;
else if(n%5==0) r1=n/5;
else f(--n,&r1);
*r=r1;
}
main()
{int m=7,r;
f(m,&r); printf(“%d\n,r”);
}
程序運行后的輸出結果是(A)
A) 2
B) 1
C)3
D) 0
(41)有以下程序
main(int argc,char *argv[])
{int n=0,i;
for(i=1;i n=n*10+*argv[i]-‘0’;
printf(“%d\n”,n);
}
編譯連接后生成可執行文件tt.exe,若運行時輸入以下命令行
tt 12 345 678
程序運行后的輸出結果是(D)
A) 12
B) 12345
C)12345678
D) 136
(42) 有以下程序
int a=4;
int f(int n)
{int t=0; static int a=5;
if(n%2) {int a=6; t+=a++;}
else {int a=7 ;t+=a++;}
return t+a++;
}
main()
{int s=a,i=0;
for(;i〈2;i++) s+=f(i);
printf (“%d\n”,s);
}
程序運行后的輸出結果是(B)
A)24
B)28
C)32
D)36
(43) 有一個名為init.txt的文件,內容如下:
#define HDY(A,B) A/B
# define PRINT(Y) Printf(“y=%d\n.,Y)
有以下程序
#include “init.txt”
main()
{int a=1,b=2,c=3,d=4,k;
K=HDY(a+c,b+d);
PRINT(K);
}
下面針對該程序的敘述正確的是(D)
A)編譯有錯
B)運行出錯
C)運行結果為 y=0
D) 運行結果為 y=6
(44) 有以下程序
main()
{char ch[]=“uvwxyz”,*pc;
Pc=ch; printf(“%c\n”,*(pc+5));
}
程序運行后的輸出結果是(A)
A)z
B)0
C)元素ch[5]的地址
D)字符y的地址
(45) 有以下程序
struct S {int n; int a[20];};
void f(struct S *P)
{int i,j,t;
for(i=0;in-1;i++)
for(j=i+1;jn;j++)
if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; }
}
main()
{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
f(&s);
for(i=0;i printf(“%d”,s.a[i]);
}
程序運行后的輸出結果是(A)
A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,
C)2,3,1,6,8,7,5,4,10,9,
D)10,9,8,7,6,1,2,3,4,5,
(46) 有以下程序
struct S{ int n; int a[20]; };
void f(int *a,int n)
{int i;
for(i=0;i a[i]+=i;
}
main()
{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
f(s.a, s.n);
for(i=0;i printf(“%d”,s.a[i]);
}
程序運行后的輸出結果是(A)
A)2,4,3,9,12,12,11,11,18,9,
B)3,4,2,7,9,8,6,5,11,10,
C)2,3,1,6,8,7,5,4,10,9,
D)1,2,3,6,8,7,5,4,10,9,
(47) 有以下程序段
typedef struct node { int data; struct node *next; } *NODE;
NODE p;
以下敘述正確的是(C)
A)p是指向struct node結構變量的指針的指針
B)NODE p;語句出錯
C)p是指向struct node結構變量的指針
D)p是struct node結構變量
(48)有以下程序
main()
{unsigned char a=2,b=4,c=5,d;
d=a|b; d&=c; printf(“%d\n”,d); }
程序運行后的輸出結果是(B)
A)3
B)4
C)5
D)6
(49)有以下程序
#include
main()
{FILE *fp; int k,n,a[6]={1,2,3,4,5,6};
fp=fopen(“d2.dat”,”w”);
fprintf(fp,”%d%d\n”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d \n”,a[3],a[4],a[5]);
fclose(fp);
fp=fopen(“d2.dat”,”r”);
fscanf(fp, “%d%d”,&k,&n); printf(“%d%d\n”,k,n);
fclose(fp);
}
程序運行后的輸出結果是(D)
A)1 2
B)1 4
C)123 4
D) 123 456
(50)有以下程序
#include
main ()
{FILE *fp; int i,a[6]={1,2,3,4,5,6k};
fp=fopen(“d3.dat”,”w+b”);
fwrite(a,sizeof(int),6,fp);
fseek(fp,sizeof(int)*3,SEEK_SET);/*該語句使讀文件的位置指針從文件頭向后移動3個int型數據*/
fread(a,sizeof(int),3,fp); fclose(fp);
for(i=0;i<6;i++) printf(“%d,”,a[i]);
}
程序運行后的輸出結果是(A)
A)4,5,6,4,5,6,
B)1,2,3,4,5,6,
C)4,5,6,1,2,3,
D)6,5,4,3,2,1,
二.填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡[1]至[20]序號的橫線上,答在試卷上不得分。注意:以命令關鍵字填空的必須寫完整.
(1) 在深度為7的滿二叉樹中,度為2的結點個數為___63____。
(2) 軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于__黑箱(或黑盒) 測試。
(3) 在數據庫系統中,實現各種數據管理功能的核心軟件稱為 __數據庫管理系統__。
(4) 軟件生命周期可分為多個階段,一般分為定義階段、開發階段和維護階段。編碼和測試屬于 開發_____階段。
(5)在結構化分析使用的數據流圖(DFD)中,利用數據字典 對其中的圖形元素進行確切解釋。
(6)執行以下程序后的輸出結果是 a=14 。
main()
{int a=10;
a=(3*5,a+4); printf(“a=%d\n”,a);
}
(7) 當執行以下程序時,輸入1234567890<回車>,則其中while循環體將執行 0 次。
#include
main()
{char ch;
While((ch=get))==’0’) printf(“#”);
}
(8) (8)以下程序的運行結果是 m=4 k=4 i=5 k=5 。
int k=0;
void fun(int m)
{ m+=k; k+=m; printf(“m=%d\n k=%d ”,m,k++);}
main()
{ int i=4;
fun(i++); printf(“i=%d k=%d\n”,i,k);
}
(9) (9)以下程序的運行結果是 #& 。
main()
{int a=2,b=7,c=5;
switch(a>0)
{case 1:switch(b<0)
{case 1:switch(“@”); break;
Case 2: printf(“!”); break;
}
case 0: switch(c==5)
{ case 0: printf(“*”); break;
case 1: printf(“#”); break;
case 2: printf(“$”); break;
}
default : printf(“&”);
}
printf(“\n”);
}
(10)以下程序的輸出結果是 9
# include
main()
{ printf(“%d\n”,strlen(“IBM\n012\1\\”));
}
(11)已定義char ch=”$”;int i=1,j;執行j=!ch&&i++以后,i的值為1
(12)以下程序的輸出結果是 5 4
# include
main()
{ char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};
printf(“%d %d\n”,sizeof(a),srelen(a));
}
(13)設有定義語句:int a[][3]={{0},{1},{2}};,則數組元素a[1][2]的值為 0
(14)以下程序的功能是:求出數組x中各相鄰兩個元素的和依次存放到a數組中,然后輸出。請填空。
main()
{int x[10],a[9],I;
for (i=0;i<10;i++)
scanf(“%d”,&x[i]);
for( i=1 ;i<10;i++)
a[i-1]=x[i]+ x[i-1] ;
for(i=0;i<9;i++)
printf(“%d”,a[i]);
printf(“\n”);
(15) 以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數中的最大值,輸出到屏幕上,請填空:
main()
{int x,y,z,max,*px,*py,*pz,*pmax;
scanf(“%d%d%d”,&x,&y,&z);
px=&x;
py=&y;
pz=&z;
pmax=&max;
*pmax=*px(或*pmax=x) ;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf(“max=%d\n”,max);
}
(16)以下程序的輸出結果是 10
int fun(int*x,int n)
{if(n==0)
return x[0];
else return x[0]+fun(x+1,n-1);
}
main()
{int a[]={1,2,3,4,5,6,7};
printf(“%d\n”,fun(a,3));
}
(17)以下程序的輸出結果是 35
# include
main()
{char *s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;
*s2=20;
m=*s1+*s2;
printf(“%d\n”,m);
}
(18)設有說明
struct DATE{int year;int month; int day;};
請寫出一條定義語句,該語句定義d為上述結構體變量,并同時為其成員year、month、day 依次賦初值2006、10、1: struct DATA d={2006,10,1};
(19) 設有定義:FILE *fw;,請將以下打開文件的語句補充完整,以便可以向文本文件readme.txt的最后續寫內容。
fw=fopen(“readme.txt”, "a" )
3月全國計算機等級考試二級C語言筆試真題 2
(1)算法的時間復雜度是指_______。
A)執行算法程序所需要的時間
B)算法程序的長度
C)算法執行過程中所需要的基本運算次數
D)算法程序中的指令條數
答案:C
評析:所謂算法的時間復雜度,是指執行算法所需要的計算工作量。
(2)下列敘述中正確的是________。
A)線性表是線性結構B)棧與隊列是非線性結構
C)線性鏈表是非線性結構D)二叉樹是線性結構
答案:A
評析:一般將數據結構分為兩大類型:線性結構與非線性結構。線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。
(3)下面關于完全二叉樹的`敘述中,錯誤的是_________。
A)除了最后一層外,每一層上的結點數均達到最大值
B)可能缺少若干個左右葉子結點
C)完全二叉樹一般不是滿二叉樹
D)具有結點的完全二叉樹的深度為[log2n]+1
答案:B
評析:滿二叉樹指除最后一層外每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最后一層外,每一層上的結點數均達到最大值,在最后一層上只缺少右邊的若干子結點(葉子結點)的二叉樹。
3月全國計算機等級考試二級C語言筆試真題 3
(1)下述關于數據庫系統的敘述中正確的是________。
A)數據庫系統減少了數據冗余
B)數據庫系統避免了一切冗余
C)數據庫系統中數據的一致性是指數據類型的一致
D)數據庫系統比文件系統能管理更多的數據
答案:A
評析:由數據的共享自身又可極大地減少數據冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的'不同出現應保持相同的值。
(2)關系表中的每一橫行稱為一個________。
A)元組B)字段C)屬性D)碼
答案:A
評析:在關系數據庫中,關系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。
(3)數據庫設計包括兩個方面的設計內容,它們是________。
A)概念設計和邏輯設計B)模式設計和內模式設計
C)內模式設計和物理設計D)結構特性設計和行為特性設計
答案:A
評析:數據庫設計可分為概念設計與邏輯設計。概念設計的目的是分析數據間內在語義關聯,在此基礎上建立一個數據的抽象模型。邏輯設計的主要工作是將ER圖轉換為指定的RDBMS中的關系模型。
(4)請讀程序:
#include
main
{
int a;float b,c;
scanf(“%2d%3P%4f’,&a,&b,&C);
printf(” a=%d,b=%ec。%f ”,a,b,C);
}
若運行時從鍵盤上輸入9876543210l,則上面程序的輸出結果是________。
A)a=98,b=765,c=432 1
B)a=1 0,b=432,c=8765
C)a=98,b=765.000000,c=432 1.000000
D)a=98,b=765.0,c=432 1.0
答案:C
評析:scanf把用戶從鍵盤錄入的數字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。
(5)一個良好的算法由下面的基本結構組成,但不包括__________。
A)順序結構B)選擇結構C)循環結構D)跳轉結構
答案:D
評析:1966年,Bohra和Jacopini提出了以下三種基本結構,用這三種基本結構作為表示一個良好算法的基本單元:1、順序結構;2、選擇結構;3、循環結構。
(6)請選出以下程序的輸出結果________。
#include
sub(x,y,z)
int x,y,星符號z:
{星符號z變化,所以此次函數被調用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發生變化,其值為-5-7=-12,在sub(a,b,&C)后,c的值發生變化,其值為-12-(-5)=-7。
(7)下面程序在屏幕上的輸出是________。
main
{
printf(”ab c”);
}
A)ab c B)a c C)abc D)ab c
答案:B
評析:c語言中允許使用一種特殊形式的字符常量,、就是以一個“”開頭的字符序列,這樣的字符稱為“轉義字符”。常用的轉義字符有: ,換行;,水平制表;,退格;,回車。
(8)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是_______。
A)pb=&x; B)pb=x; C)星符號pb=星符號、/)還包括自增自減運算符(++、–),在c語言解析表達式時,它總是進行貪婪咀嚼,這樣,該表達式就被解析為i++ ++ +i,顯然該表達式不合c語言語法。
(10)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態存儲單元
int星符號int) D)(int星符號)
答案:D
評析:不論p是指向什么類型的指針變量,都可以通過強制類型轉換的方法使之類型一致,強制類型轉換的格式為(數據類型+)。
(11)下面程序輸出的結果是__________。
main
{
int i=5,J=9,x;
x=(I==j?i:(j=7));
printf(” %d,%d”,I,J);
}
A)5,7 B)5,5 C)語法錯誤D)7,5
答案:A
評析:條件表達式的一般形式為:表達式I?表達式2:表達式3;先求解表達式1,若為真則求解表達式2;若表達式l的值為假,則求解表達式3。本題中先判斷i==j,不等,執行j=7;然后執行x=7。故本題為A。
【3月全國計算機等級考試二級C語言筆試真題】相關文章:
全國計算機等級考試二級C++筆試真題10-11
計算機等級考試二級C語言筆試選擇真題10-06
計算機等級考試二級C語言真題09-26
2006年9月全國計算機等級考試二級C語言筆試真題10-08
3月全國計算機等級考試二級C++筆試真題10-11
計算機二級考試C語言筆試填空真題09-10
計算機二級C語言筆試真題10-12
全國計算機等級考試二級C語言筆試試題06-29