2013全國計算機等級考試二級C語言試題一

考試頻道小編收集整理了全國計算機等級考試二級C語言試題,供大家交流參考。(分享:2014年會考時間)
  一、選擇題

2013全國計算機等級考試二級C語言試題一

在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項塗寫在答題卡相應位置上,答在試卷上不得分。

(1)程式流程圖中帶有箭頭的線段表示的是

A)圖元關係 B)資料流 C)控制流 D)呼叫關係

(2)下面不屬於軟體設計原則的是

A)抽象 B)模組化 C)自底向上 D)資訊隱蔽

(3)下列選項中,不屬於模組間耦合的是

A)資料耦合 B)標記耦合 C)異構耦合 D)公共耦合

(4)下列敘述中,不屬於軟體需求規格說明書的作用的是 A)便於使用者、開發人員進行理解和交流 B)反映出使用者問題的結構,可以作為軟體開發工作的基礎和依據

C)作為確認測試和驗收的依據 D)便於開發人員進行需求分析

(5)演算法的時間複雜度是指

A)執行演算法程式所需要的時間 B)演算法程式的長度 C)演算法執行過程中所需要的基本運算次數

D)演算法程式中的指令條數

(6)已知資料表A中每個元素距其最終位置不遠,為節省時間,應採用的演算法是

A)堆排序 B)直接插入排序 C)快速排序 D)B)和C)

(7)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是

A)ABCED B)DCBEA C)DBCEA D)CDABE

(8)資料庫設計包括兩個方面的設計內容,它們是

A)概念設計和邏輯設計 B)模式設計和內模式設計 C)內模式設計和物理設計 D)結構特性設計和行為特性設計

(9)關係表中的每一橫行稱為一個

A)元組 B)欄位 C)屬性 D)碼

(10)設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關鍵字 (鍵或碼)為

A)課號,成績 B)學號,成績 C)學號,課號 D)學號,姓名,成績

(11)以下不正確的敘述是

A)在C程式中,逗號運算子的優先順序最低 B)在C程式中,APH和aph是兩個不同的變數

C)若a和b型別相同,在計算了賦值表示式a=b後b中的值將放入a中,而b中的值不變

D)當從鍵盤輸入資料時,對於整型變數只能輸入整型數值,對於實型變數只能輸入實型數值

(12)請選出可用作C語言使用者識別符號的是

A)void,define,WORD B)a3_b3,_123,IF C)FOR,--abc,Case D)2a,Do,Sizeof

(13)以下選項中,不能作為合法常量的是

A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

(14)在C語言中,運算物件必須是整型數的運算子是

A)% B) C)%和 D)**

(15)若變數均已正確定義並賦值,以下合法的C語言賦值語句是

A)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;

(16)有以下程式段

char ch; int k;

ch=′a′; k=12;

printf("%c,%d,",ch,ch,k); printf("k=%d n",k);

已知字元a的ASCII碼值為97,則執行上述程式段後輸出結果是

A)因變數型別與格式描述符的型別不匹配輸出無定值 B)輸出項與格式描述符個數不符,輸出為零值或不定值

C)a,97,12k=12 D)a,97,k=12

(17)已知字母A的ASCII程式碼值為65,若變數kk為char型,以下不能正確判斷出kk中的值為大寫字母的表示式是

A)kk>=′A′&& kk<=′Z′ B)!(kk>=′A′||kk<=′Z′) C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isalpha(kk)&&(kk<91)

(18)當變數c的值不為2、4、6時,值也為"真"的表示式是

A)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1)

(19)若有條件表示式 (exp)?a++:b--,則以下表達式中能完全等價於表示式(exp)的是

A)(exp==0) B)(exp!=0) C)(exp==1) D)(exp!=1)

(20)以下不正確的定義語句是

A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9}; C)char c1[]={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′x10′, ′xa′, ′x8′};

(21)下列程式執行後的輸出結果是

main()

{ int a[3][3], *p,i;

p=&a[0][0];

for(i=1; i<9; i++)p[i]=i+1;

printf("%dn",a[1][2];)

A)3 B)6 C)9 D)隨機數

(22)設有以下程式段

int x=0,s=0;

while(!x!=0)s+=++x;

printf("%d",s);

A)執行程式段後輸出0 B)執行程式段後輸出1 C)程式段中的控制表示式是非法的 D)程式段執行無限次

(23)(23)下面程式段的執行結果是

char *s="abcde";

s+=2;printf("%d",s);

A)cde B)字元′c′ C)字元′c′的地址 D)無確定的輸出結果

(24)閱讀下列程式,則執行後的結果為

#include "stdio.h"

main()

{ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};

printf("%x,%xn",c[2][2],*(*(c+1)+1));}

A)3e,6 B)62,5 C)56,5 D)3E,6

(25)下面判斷正確的是

A)char *a="china";等價於 char *a;*a="china"; B)char str[5]={"china"};等價於char str[]={"china"};

C)char *s="china";等價於 char *s;s="china"; D)char c[4]="abc",d[4]="abc";等價於char c[4]=d[4]="abc";

(26)若有定義:int a[2][3];,以下選項中對a陣列元素正確引用的是

A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1]

(27)有定義語句:char s[10];,若要從終端給s輸入5個字元,錯誤的輸入語句是

A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);

(28)有以下程式

#include

#define N 5

#define M N+1

#define f(x) (x*M)

main()

{ int i1,i2;

i1=f(2);

i2=f(1+1);

printf("%d %dn",i1,i2);

}

程式的執行結果是

A)12 12 B)11 7 C)11 11 D)12 7

(29)若有以下說明和定義

union dt

{ int a; char b; double c;}data;

以下敘述中錯誤的是

A)data的每個成員起始地址都相同 B)變數data所佔記憶體位元組數與成員c所佔位元組數相等

C)程式段:data.a=5;printf("%fn",data.c);輸出結果為5.000000 D)data可以作為函式的實參

(30)有以下程式

#include

main()

{FILE *fp;int k,n,a[6]={1,2,3,4,5,6};

fp=fopen("","w");

fprintf(fp,"%d%d%dn",a[0],a[1],a[2]);

fprintf(fp,"%d%d%dn",a[3],a[4],a[5]);

fclose(fp);

fp=fopen("","r");

fscanf(fp,"%d%d",&k,&n);printf("%d%dn",k,n);

fclose(fp);

}

程式執行後的輸出結果是

A)1 2 B)1 4 C)123 4 D)123 456

(31)若已定義

int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;

其中 則對a陣列元素不正確的引用是

A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]

(32)有以下程式

#include

void fun(int ?*s,int n1,int n2)

{ int i,j,t;

i=n1; j=n2;

while(i

}

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,0},k;

fun(a,0,3); fun(a,4,9); fun(a,0,9);

for(k=0;k

}

程式的執行結果是

A)0987654321 B)4321098765 C)5678901234 D)0987651234

(33)閱讀下列程式,當執行函式時,輸入asd af aa z67,則輸出為

#include

#include

#include

int fun (char *str)

{ int i,j=0;

for(i=0;str[i]!=′