c语言既能读字母也能读数字,2014计算机二级考试C语言考前预测选择题
無憂考網為大家收集整理了《2014計算機二級考試C語言考前預測選擇題》供大家參考,希望對大家有所幫助!!!
1.結構化分析方法是面向( )的自頂向下、逐步求精進行需求分析的方法
A.對象
B.數據結構
C.數據流
D.目標
2.對線性表進行二分法檢索,其前提條件是( )。
A.線性表以順序方式存儲,并按關鍵碼值排好序
B.線性表以順序方式存儲,并按關鍵碼的檢索頻率排好序
C.線性表以鏈式方式存儲,并按關鍵碼值排好序
D.線性表以鏈式方式存儲,并按關鍵碼的檢索頻率排好序
3.結構化程序設計的3種結構是( )。
A.順序結構、選擇結構、轉移結構
B.分支結構、等價結構、循環結構
C.多分支結構、賦值結構、等價結構
D.順序結構、選擇結構、循環結構
4.已知數據表A中每個元素距其最終位置不遠,為了節省時間,應采用的算法是( )。
A.堆排序
B.直接插入排序
C.快速排序
D.直接選擇排序
5.在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性的階段是( )。
A.數據庫系統
B.文件系統
C.人工管理
D.數據項管理
6.設有如圖所示二叉樹,對此二叉樹后序遍歷的結果為( )。
A.ZBTYCPXA
B.ATBZXCYP
C.TZBACYXP
D.ATBZXCPY
7.鏈表不具有的特點是( )。
A.不必事先估計存儲空間
B.可隨機訪問任意元素
C.插入、刪除不需要移動元素
D.所需空間與線性表長度成正比
8.在數據庫設計中,將E—R圖轉換為關系模式的過程屬于( )。
A.需求分析階段
B.邏輯設計階段
C.概念設計階段
D.物理設計階段
9.C語言可執行程序的開始執行點是( )。
A.包含文件中的第一個函數
B.程序中第一個函數
C.程序中的main()函數
D.程序中第一條語句
10.在C語言程序中可用做用戶標識符的是( )。
A.void
123
BBN
B.aa
_abc
cas
C.as+b3
-123
If
D.6f
Do
SIG
11.以下所列的C語言常量中,錯誤的是( )。
A.0xFF
B.1.2e0.5
C.2L
D.‘72’
12.若變量a、i已正確定義,且i已正確賦值,合法的語句是( )。
A.a==l
B.++i
C.a=a++=5
D.a=int(i)
13.若a為int類型,且其值為3,則執行完表達式a+= a-=a*a后,a的值是( )。
A.一3
B.9
C.一12
D.6
14.若有定義“int a=5,b=7;”,則表達式a%一(b%2) 運算后,a的值為( )。
A.0
B.1
C.11
D.3
15.若執行以下程序時從鍵盤上輸入9,則輸出結果是( )。
main()
{ int n;
scanf(”%d”,&n);
if(n++<10)printf(”/%d\n”,n);
else printf(”%d\n”,n--);
}
A.11
B.10
C.9
D.8
16.設a、b、c、d、m、n均為int型變量,且a=5、b=6、c= 7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n—c> d)運算后,n的值是( )n
A.0
B.1
C.2
D.3
17.有如下程序:
main()
{ int x=23;
do
{printf(”%d”,x--);}
while(!x);
}
該程序的執行結果是( )。
A.321
B.23
C.不輸出任何內容
D.陷入死循環
18.下列程序的輸出結果是( )。
#include
main()
{ int a=2,b=3,P;
p=f(a,b);
printf(”%d”,p);
}
int f(a,b)
{ int c;
if(a>b)c=1;
else if(a==b)c=0;
else c=-l;
return(c);
}
A.-l
B.0
C.1
D.2
19.有下列程序:
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1;m=i+x+y;return m;
}
main()
{ int j=1,m=1,k;
k=fun(j,m);print S(”%d,”,k);
k=fun(j,m);printf(”%d\n”,k);
)
執行后的輸出結果是( )。
A.5,5
B.5,11
C.11,11
D.11,5
20.下列字符數組初始化語句中,不正確的是( )。
A.char c[]=’900dmornin9’;
B.char c[20]="900dmorning";
C.char c[]={’a’,’b ’,’c ’,’d’);
D.char c[]={"ffgoodmorning"};
21.下列程序的輸出結果是( )。
#include
void p(int*x)
{ printf("%d¨,++*x);
}
void main()
{ int y=3;
p(&y);
}
A.3
B.4
C.2
D.5
22.若變量e為char類型,能正確判斷出C為小寫字母的表達式是( )。
A.’a’<=c<=’2’
B.(c>=’a’)||(c<=’2’)
C.(’a’<=c)and(’z’>c)
D.(c>=’a’)&&(c<=’2’)
23.以下程序的輸出結果是( )。
main()
{ int Rum=0;
while(num<=2)
{ num++;
printf(”%d\n”,num);
}
}
A.1
B.1
C.1
2
3
4
D.1
2 2
3
24.以下函數返回a所指數組中最小的值所在的下標值:
fun(int*a,int n)
{ int i,j=0,P;
p=j;
for(i=j;i if(a[i] }
在下劃線處應填入的是( )。
A.i=P
B.a[p]=a[i]
C.p=j
D.p=i
25.有如下程序段:
int a=14,b=15,x;
char c=’A’;
x=(a&&b)&&(c
執行該程序后,x的值為( )。
A.true
B.false
C.0
D.1
26.以下程序的輸出結果是( )。
main()
{ int i,a[4] [4]一{{1,3,5),{2,4,6},{3,5,7}};
printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2]
[1],a[3][0];
}
A.0650
B.1470
C.5430
D.輸出值不定
27.下列程序中函數sort()的功能是對數組a中的數據進行由大到小的排序。
#include
void sort(int a[],int ll)
{ int i,j,t;
for(i=0;i for(j=j+1+1;j if(a[i] {t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{ int a[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序運行后的輸出結果是( )。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
28.下列判斷正確的是( )。
A.char a="ABCD":等價于char*a;*a="ABCD":
B.char str[10]={"ABCD"}:等價于char str[10];str []={"ABCD"};
C.char*s="ABCD":等價于char s;*s="ABCD";
D.char c[5]="ABCD",d[5]="ABCD":等價于char c [5]-d[5]="ABCD";
29.有如下程序:
main()
{ int n[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
該程序的輸出結果是( )。
A.不確定的值
B.2
C.1
D.0
30.當執行下面的程序時,如果輸入ABC,則輸出結罘是( )。
#include
#include
main()
{ char ss[10]="1,2,3,4,5":
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
A.ABC6789
B.ABC67
C.12345ABC6
D.ABC456789
31.以下程序的輸出結果是( )。
#define M(x,y,z)x*y+z
main()
{ int a=l,b=2,c=3;
printf("%d\n",m(a+b.b+c,c+a));
}
A.19
B.1 7
C.15
D.12
32.有以下程序:
main()
{ int k=5,n=0;
do
{ switch(k)
{ case 1:
case 3:n+=l;k--;break;
defalut:n=0;k--;
case 2:
case 4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結果是( )。
A.235
B.0235
C.02356
D.2356
33.下面for語句的循環次數為( )。
for(x=1,y=0;(y!=19)&&(x<6);x++);
A.是無限循環
B.循環次數小定
C.最多執行6次
D.最多執行5次
34.對下述程序的判斷中,正確的是( )。
#include
main()
{ char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{ printf("Input the strin9:");
gets(s);
while(*p)
putchar(*p++);
}}
A.此程序循環接收字符串并輸出,直到接收到字符串“the end”為止
B.此程序循環接收字符串,接收到字符串“the end”則輸出,否則程序終止
C.此程序循環接收字符串并輸出,直到接收字符串“the end”為止,但因為代碼有錯誤,程序不能正常工作
D.此程序循環接收字符串并將其連接在一起,直到接收字符串“the end”為止,輸出連接在一起的字符串
35.下列程序的輸出結果是( )。
#include
main()
{ int i,S=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3))s+=i;
printf("%d\n",s);
}
A.4
B.39
C.45
D.6
36.有以下程序:
void fun2(char a,char b) {printf(”%c%c”,a,b); }
char a=’A’,b=’B’;
void funl(){a=’C’;b=’D’;}
main()
{ funl();
printf("%c%c",a,b);
fun2(’E’,’F’);
}
程序的運行結果是( )。
A.CDEF
B.ABEF
C.ABCD
D.CDAB
37.有以下程序:
#include
main()
{ char cl=’1’,c2=’2’;
cl=getchar();c2=getchar();putchar(c1);putcha:
(c2);
}
當程序運行時輸入a后,下列敘述中正確的是( )。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序將等待用戶輸入第2個字符
c.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
38.下述程序的輸出結果是( )。
#define N 20
void fun(int a[],int n,int m)
{ int i,j;
for(i=m;i>n;i--)a[i+1]=a[i];
}
main()
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
A.10234
B.12344
C.12334
D.12234
39.若要用函數fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以( )方式打開文件。
A."wb"
B."wb+"
C."rb+"
D."rb"
40.下列敘述中錯誤的是( )。
A.在C語言中,函數中的自動變量可以賦初值,每調用一次賦一次初值
B.在C語言中,在調用函數時,實參和對應形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動存儲類別
D.在C語言中,函數形參的存儲類型是自動(auto)類型的變量
1.C。【解析】結構化分析方法是面向數據流進行需求分析的方法,采用自頂向下、逐層分解,建立系統的處理流程,以數據、流圖和數據字典為主要工具,建立系統的邏輯模型。
2.A。【解析】對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關鍵碼值的大小排好序。
3.D。【解析】結構化程序設計的主要觀點是采用自頂向下、逐步求精的程序設計方法;任何程序都可由順序、選擇和循環3種基本控制結構構造。
4.B。【解析】當數據表A中每個元素距其最終位置不遠,說明數據A按關鍵字值基本有序。在待排序數據基本有序的情況下,采用插入排序所用的時間最少。
5.A。【解析】數據庫系統的一個重要目標就是使程序和數據真正分離,數據蝕立性包括數據的物理獨立性和數據的邏輯獨立性。相對文件系統人工管理和數據項管理,數據庫系統的數據獨立性大大增加。
6.A。【解析】后序遍歷首先訪問左子樹,然后右子樹,最后根結點,即左右根。故該二叉樹的前序遍歷結果為“ATBZXCYP”。后序遍歷和中序遍歷的結果分別為“ZB—TYCPXA”和“TZBACYXP”。
7.B。【解析】鏈表采用的是鏈式存儲結構,它的結點空間可以動態申請和釋放;它的數據元素的邏輯次序靠結點的指針來指示,插入、刪除不需要移動數據元素。但是鏈式存儲結構也有不足之處:每個結點中的指針域需額外占用存儲空間,它是一種非隨機存儲結構。
8.B。【解析】數據唪設計階段主要包括需求分析、概念設計、邏輯設計和物理設計。邏輯設計的主要工作是將E—R圖轉換為關系模式。
9.C。【解析】每個C程序有且只有一個主函數main(),且程序必須從main()函數開始執行,并在main()函數中結束。
10.B。【解析】c語言規定,標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線,不能使用關鍵字和數字,A中void,C中if,D中D0,都屬于關鍵字。
11.B。【解析】在C語言中,用e來表示科學計數法時,規定在e后面的數字必須為整數。
12.B。【解析】選項A為表達式,因此不正確,選項C中a++本身就是表達式,無需再賦值,選項D中,在強制類型轉換時,類型名應用括號括起來,故選擇8選項。
13.C。【解析】在表達式中,其+=,-=的優先級相同,按從右到左的結合方向運算,而*的優先級,表達式寫成a=a+(a-(a*a)),代入3可得-12。
14.A。【解析】本題考查“%”運算符的使用。運算符“%”是整數除法的余數。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。
15.B。【解析】當n為9時,此時if語句成立,執行n+ +后,n為10,因此輸出n的值為10,故選擇B選項。
16.C。【解析】因為a>b不成立,故表達式a>b的值為0,即為0賦給m,因此&&左邊表達式的值為0,0與任何值&&運算都為0,于是不再計算&&右邊表達式的值,所以此時的n仍然為2。
17.B。【解析】本題考查do—while語句,當X一23時,執行do后的語句,x--的表達式值為x=x-1,此時X的值為22,而!X為0,因此while循環不成立,退出,故選擇B 選項。
18.A。【解析】本題考查if-else語句。if為真則執行C =1,if為假則執行else中的條件,不符合繼續執行else。
19.B。【解析】子函數fun(int x,int y),將變量m和i聲明為局部靜態變量,因此第l次調用主函數后,局部靜態變量m和i的值為5和3,第l次函數調用結束時,它們的值不釋放保持不變,所以第2次調用時,局部靜態變量m和i 的初始值分別為5和3,即在執行“i+=m+1”時,i的值為9,因此最終m的值為11。
20.A。【解析】本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②℃語言中沒有字符串變量,只能用字符數組來存儲字符串。
21.B。【解析】本題考查函數調用時的參數傳遞。在函數調用時,形參是指向實參的指針變量,則printf的執行結果為++x;x=3,則3+1=4。
22.D。【解析】在判斷小寫字母時,必須判斷在某一范圍內成立,因此用與,即&&,即C在a與z之間。
23.B。【解析】當num=0時,循環成立,執行num++ 后;num的值為1,因此輸出1,接著返回while中的表達式;當num=1時,循環成立,執行nHm++后,num的值為2,輸出2,再返回while中的表達式;當num=2時,循環成立,執行num++后.nHm的值為3,輸出3,最后返回while中的表達式,當num=3,循環不成立,退出。
24.D。【解析】p是存放最小下標的變量,而if后的表達就是實現這個}j的的,當if成立時,就把小的下標放到p 中,故選擇D選項。
25.D。【解析】在C語言中,當表達式成立時用l表示,不成立時用0表示,即x=(a&&b)&&(c
26.A。【解析】當所賦的值不夠其列的寬度時,系統在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。
27.C。【解析】本程序中的函數sort(int a[],int n)實現的功能是將數組a中的前n個數進行從大到小排序。sort (&a[1],7)是將數組中從a[1]~a[7]這7個數進行從大到小排序,其他數不變。
28.D。【解析】a=“ABCD”書寫錯誤,因為“=”左邊不能出現常量;數組名S是代表S數組首地址常量,而不是變量;字符串只有在定義時維數可以省略。
29.D。【解析】本題for循環中,當i=0時,判斷條件i&printf("%d\n",n[k]),此時i的值是0,輸出n[k]的值也為0,0 &0結果還是0,條件不成立,退出循環。所以最后輸出結果為0。
30.A。【解析l當執行gets(ss)后,ss數組中的元素為ABC,再執行strcat(ss,"6789"),strcat的作用,是把6789連接到了ss數組后面,執行完后SS數組為ABC6789,故選擇A選項。
31.D。【解析IM(a+b,b+C,c+a)=a+b*b+c+c+ a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。
32.B。【解析】本題考查分支語句用法加個句號因為變量的初始值分別為 k一5、n一0,所以程序第1次進入循環時,執行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環,執行case 4:這個分支,結果是n=2、k=3,打印出2;這時n =2、k=3,break跳出,程序進行第3次循環,執行case 3:這個分支,結果是n=3、k=2,打印出3;這時n一3、k 2,b¨ak跳出,程序然后進行第4次循環,執行case 2:case 4:這個分支,結果是n=5、k=1,打印出5,break 跳出,這時因為n=5不滿足n<5的循環條件,因此循環結束。
33.D。【解析】本題考查for循環的使用。根據條件考慮x的取值變化,x從1取到5,可以循環5次,但并不知道y是如何變化的,有可能出現y=19提前跳出循環的情況,所以是最多執行5次。
34.C。【解析】外部變量在編譯時由系統分配永久的內存空間,所以外部變量的類型不是自動存儲類別。
35.D。【解析】if語句的條件是當i既是3的倍數又是2的倍數時成立,所以此程序實現的功能是將10以內既是3 的倍數又是2的倍數的數相加。
36.A。【解析】在函數funl()之前定義了全局字符變量a和b。這兩個變量的作用域是從其定義處開始到整個程序末結束。在函數funl()之內定義了兩個變量a和b,并且分別初始化為字符’C ’和’D ’。
37.A。【解析】本題考查getchar()函數,從終端讀入一個字符作為函數值。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入回車鍵時,讀入才開始執行。所以當輸入a后,變量c1被賦予字符a,而變量c2被賦予回車符。
38.B。【解析】函數fun()的功能是從數組a中依次將當前值賦給一個元素,所以當函數fun(a,2,9)執行后,數組a[]={1,2,3,4,4,5,6,7,8,9,10)。
39.B。【解析】本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件;方式“rb”為輸入打開一個二進制文件。
40.A。【解析】如果是static修飾的靜態變量,不是每次調用賦初值。
2014計算機二級考試C語言考前預測選擇題.doc
下載Word文檔到電腦,方便收藏和打印[全文共8573字]
編輯推薦:
下載Word文檔
總結
以上是生活随笔為你收集整理的c语言既能读字母也能读数字,2014计算机二级考试C语言考前预测选择题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在网络上提供资源的计算机,在计算机网络中
- 下一篇: fastai学习——第一个bug