- 相關推薦
2016下半年計算機考試二級C筆試試題(文字版)
一、選擇題
(1)下列敘述中正確的是
A)對長度為 n的有序鏈表進行查找,最壞清況下需要的比較次數(shù)為 n
B)對長度為 n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為 (n/2)
C)對長度為 n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為 (log2n)
D)對長度為 n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為 (nlog2n)
(2)算法的時問復雜度是指
A)算法的執(zhí)行時間
B)算法所處理的數(shù)據(jù)量
C)算法程序中的語司或指令條數(shù)
D)算法在執(zhí)行過程中所需要的基本運算次數(shù)
(3)軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件 (或工具軟件 )。下面屬于系統(tǒng)軟件的是
A)編輯軟件
B)操作系統(tǒng)
C)教務管理系統(tǒng)
D)瀏覽器
(4)軟件 (程序 )調試的任務是
A)診斷和改正程序中的錯誤
B)盡可能多地發(fā)現(xiàn)程序中的錯誤
C)發(fā)現(xiàn)并改正程序中的所有錯誤
D)確定程序中錯誤的性質
(5)數(shù)據(jù)流程圖 (DFD圖 )是
A)軟件概要設計的工具
B)軟件詳細設計的工具
C)結構化方法的需求分析工具
D)面向對象方法的需求分析工具
(6)軟件生命周期可分為定義階段,開發(fā)階段和維護階段。詳細設計屬于
A)定義階段
B)開發(fā)階段
C)維護階段
D)上述三個階段
(7)數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義的語言是
A)數(shù)據(jù)定義語言
B)數(shù)據(jù)管理語言
C)數(shù)據(jù)操縱語言
D)數(shù)據(jù)控制語言
(8)在學生管理的關系數(shù)據(jù)庫中,存取一個學生信息的數(shù)據(jù)單位是
A)文件
B)數(shù)據(jù)庫
C)字段
D)記錄
(9)數(shù)據(jù)庫設計中,用 E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設計的
A)需求分析階段
B)邏輯設計一階段
C)概念設計階段
D)物理設計階段
(10)有兩個關系 R和 T如下:
則由關系 K得到關系 T的操作是
A)選擇
B)投影
C)交
D)并
(11)以下敘述正確的是
A)C語言程序是由過程和函數(shù)組成的
B)C語言函數(shù)可以嵌套調用,例如: fun(fun(x))
C)C語言函數(shù)不可以單獨編譯
D)C語言中除了 main函數(shù),其他函數(shù)不可作為單獨文件形式存在
(12)以下關于 C語言的敘述中正確的是
A)C語言中的注釋不可以夾在變量名或關鍵字的中間
B)C語言中的變量可以在使用之前的任何位置進行定義
C)在 C語言算術表達式的書寫中,運算符兩側的運算數(shù)類型必須一致
D)C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
(13)以下 C語言用戶標識符中,不合法的是
A)_1
B)AaBc
C)a_b
D)a— b
(14)若有定義: double a=22;int i=0,k=18;,則不符合 C語言規(guī)定的賦值語句是
A)a=a++,i++;
B)i=(a+k)<=(i+k);
C)i=a%11;
D)i=!a;
(15)有以下程序
#include
main()
{ chara,b,c,d;
scanf(“ %c%c” ,&a,&b);
c=getchar();d=getchar();
printf(“ %c%c%c%c\n” ,a,b,c,d);
}
當執(zhí)行程序時,按下列方式輸入數(shù)據(jù) (從第 1列開始,代表回車,注意:回車也是一個字符 )
12
34
則輸出結果是
A)1234
B)12
C)12
3
D)12
34
(16)以 i關于 C語言數(shù)據(jù)類型使用的敘述中錯誤的是
A)若要準確無誤差的表示自然數(shù),應使用整數(shù)類型
B)若要保存帶有多位小數(shù)的數(shù)據(jù),應使用雙精度類型
C)若要處理如“人員信息”等含有不同類型的相關數(shù)據(jù),應自定義結構體類型
D)若只處理“真”和“假”兩種邏輯值,應使用邏輯類型
(17)若 a是數(shù)值類型,則邏輯表達式 (a==1)||(a!=1)的值是
A)1
B)0
C)2
D)不知道 a的值,不能確定
(18)以下選項中與 if(a==1)a=b; else a++;語句功能不同的 switch語句是
A)switch(a)
{case:a=b;break;
default:a++;
}
B)switch(a==1)
{case0:a=b;break;
case 1:a++;
}
C)switch(a)
{default:a++;break;
case 1:a=b;
}
D)switch(a==1)
{case1:a=b;break;
case 0:a++;
}
(19)有如下嵌套的 if語句
if (a
if(a
else k=c;
else
if(b
else k=c;
以下選項中與上述 if語句等價的語句是
A)k=(a
B)k=(ac)?b:c);
C)k=(a
D)k=(a
(20)有以下程序
#include
main()
{in i,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>O;j--)
{if(i*j)>3)break;
m=i*j;
}
}
printf("m=%d\n",m);
。
程序運行后的輸出結果是
B)m=2
C)m=4
D)m=5
(21)有以下程序
#include(stdio.h>
main()
{inta=l;b=2;
for(;a<8;a++){b+=a;a+=2;}
printf("%d, %d\n", a, b);
}
程序運行后的輸出結果是
A)9, 18
B)8, 11
C)7, 11
D)10, 14
(22)有以下程序,其中 k的初值為八進制數(shù)
#include
main()
{int k=011;
printf("%d\n", k++);
。
程序運行后的輸出結果是
A)12
B)11
C)10
D)9
(23)下列語句組中,正確的是
A)char*s;s="Olympic";
B)chars[7];s="Olympic";
C)char*s;s={"Olympic"} ;
D)chars[7];s={"Olympic"} ;
(24)以下關于 return語句的敘述中正確的是
A)一個自定義函數(shù)中必須有一條 return語句
B)一個自定義函數(shù)中可以根據(jù)不同情況設置多條 return語句
C)定義成 void類型的函數(shù)中可以有帶返回值的 return語句
D)沒有 return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處
(25)下列選項中,能正確定義數(shù)組的語句是
A)int num[0..2008];
B)int num[];
C)int N=2008;
int num[N];
D)#define N 2008
int num[N];
(26)有以下程序
#include
voidfun(char *c,int d)
{*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
main()
{charb='a',a='A';
fun(&b,a);printf("%e,%e\n",b, a);
}
程序運行后的輸出結果是
A)b, B, b, A
B)b, B, B, A
C)a, B, B, a
D)a, B, a, B
(27)若有定義 int(*Pt)[3];,則下列說法正確的是 A)定義了基類型為 int的三個指針變量
B)定義了基類型為 int的具有三個元素的指針數(shù)組 pt
C)定義了一個名為 *pt、具有三個元素的整型數(shù)組
D)定義了一個名為 pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組
(28)設有定義 double a[10],*s=a;,以下能夠代表數(shù)組元素 a[3]的是
A)(*s)[3]
B)*(s+3
C)*s[3]
D)*s+3
(29)有以下程序
#include(stdio.h)
main()
{inta[5]={1,2,3,4,5} ,b[5]={O,2,1,3,0} ,i,s=0;
for(i=0;i<5;i++)s=s+a[b[i]]);
printf("%d\n",s);
}
程序運行后的輸出結果是
A)6
B)10
C)1
D)15
(30)有以下程序
#include
main()
{int b[3][3]={O,1,2,0,1,2,O,1,2} ,i,j,t=1;
for(i=0;i<3;i++)
for(j=ij<=1;j++)t+=b[i][b[j][i]]
printf("%d\n",t);
。
程序運行后的輸出結果是
A)1
B)3
C)4
D)9
(31)若有以下定義和語句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n", strlen(s1),strlen(s2));
則輸出結果是
A)5 5
B)10 5
C)10 7
D)5 8
(32)有以下程序
#include
#define N 8
void fun(int*x,int i)
{*x=*(x+i);
main()
{inta[N]={1,2,3,4,5,6,7,8} ,i;
fun(a,2);
for(i=O;i
{printf("%d",a[i]);}
printf("\n");
}
程序運行后的輸出結果是
A)1313
B)2234
C)3234
D)1234
(33)有以下程序
#include
int f(intt[],int n);
main
{ inta[4]={1,2,3,4},s;
s=f(a,4);printf("%d\n",s);
}
int f(int t[],int n)
{ if(n>0)return t[n-1]+f(t,n-1);
else return0;
}
程序運行后的輸出結果是
A)4
B)1O
C)14
D)6
(34)有以下程序
#include
int fun()
{ static intx=1;
x*2; returnx;
}
main()
{int i,s=1,
for(i=1;i<=2;i++)s=fun();
printf("%d\n",s);
}
程序運行后的輸出結果是
A)O
B)1
C)4
D)8
(35)有以下程序
#include
#defineSUB(a) (a)-(a)
main()
{ inta=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
程序運行后的輸出結果是
A)0
B)-12
C)-20
D)10
(36)設有定義 :
structcomplex
{ intreal,unreal;} data1={1,8},data2;
則以下賦值語句中錯誤的是
A)data2=data1;
B)data2=(2,6);
C)data2.real=data1.real;
D)data2.real=data1.unreal;
(37)有以下程序
#include
#include
struct A
{ int a; charb[10]; double c;};
voidf(struct A t);
main()
{ struct Aa={1001,"ZhangDa",1098.0};
f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
voidf(struct A t)
{ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}
程序運行后的輸出結果是
A)1001,zhangDa,1098.0
B)1002,changRong,1202.0
C)1001,ehangRong,1098.O
D)1002,ZhangDa,1202.0
(38)有以下定義和語句
structworkers
{ intnum;char name[20];char c;
struct
{int day;int month; int year;} s;
。 ;
structworkers w,*pw;
pw=&w;
能給 w中 year成員賦 1980的語句是
A)*pw.year=198O;
B)w.year=1980;
C)pw->year=1980;
D)w.s.year=1980;
(39)有以下程序
#include
main()
{ inta=2,b=2,c=2;
printf("%d\n",a/b&c);
}
程序運行后的輸出結果是
A)O
B)1
C)2
D)3
(40)有以下程序
#include
main()
{ FILE*fp;char str[10];
fp=fopen("myfile.dat","w");
fputs("abc",fp);fclose(fp);
fpfopen("myfile.data","a++");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%s",str);puts(str);
fclose(fp);
}
程序運行后的輸出結果是
A)abc
B) 28c
C) abc28
D)因類型不一致而出錯
二、填空題
(1)一個隊列的初始狀態(tài)為空。現(xiàn)將元素 A, B, C, D, E, F, 5, 4, 3, 2, 1依次入隊,然后再依次退隊,則元素退隊的順序為 【 1】 。
(2)設某循環(huán)隊列的容量為 50,如果頭指針 front=45(指向隊頭元素的前一位置 ),尾指針 rear=10(指向隊尾元素 ),則該循環(huán)隊列中共有 【 2】 個元素。
(3)設二叉樹如下:
對該二叉樹進行后序遍歷的結果為 【 3】 。
(4)軟件是 【 4】 、數(shù)據(jù)和文檔的集合。
(5)有一個學生選課的關系,其中學生的關系模式為:學生 (學號,姓名,班級,年齡 ),課程的關系模式為:課程 (課號,課程名,學時 ),其中兩個關系模式的鍵分別是學號和課號,則關系模式選課可定義為:選課 (學號, 【 5】 ,成績 )。
(6)設 x為 int型變量,請寫出一個關系表達式 【 6】 ,用以判斷 x同時為 3和 7的倍數(shù)時,關系表達式的值為真。
(7)有以下程序
#include
main()
{ inta=1,b=2,c=3,d=0;
if(a==1)
if(b!=2)
if(c==3)d=1;
else d=2;
elseif(c!=3) d=3;
else d=4;
else d=5;
printf(“ %d\n” ,d);
}
程序運行后的輸出結果是 【 7】 。
(8)有以下程序
#include
main()
{ int m,n;
scanf("%d%d",&m,&n);
while(m!=n)
{while(m>n) m=m-n;
while(m
}
printf(“ %d\n” ,m);
}
程序運行后,當輸入 1463 <回車 > 時,輸出結果是 【 8】 。
(9)有以下程序
#include
main()
{ inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i;j<3;j++)printf(“ %d%,a[i][j]);
printf("\n");
}
程序運行后的輸出結果是 【 9】 。
(10)有以下程序
#include
main()
{ inta[]={1,2,3,4,5,6},*k[3],i=0;
while(i<3)
{k[i]=&a[2*i];
printf("%d",*k[i]);
i++;
}
}
程序運行后的輸出結果是 【 10】 。
(11)有以下程序
#include
main()
{ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};
intb[3]={0},i;
for(i=0;i<3;i++)b[i]=a[i][2]+a[2][i];
for(i=0;i<3;i++)printf("%d",b[i]);
printf("\n");
}
程序運行后的輸出結果是 【 11】 。
(12)有以下程序
#include
#include
voidfun(char *str)
{ chartemp;int n,i;
n=strlen(str);
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{ chars[50];
scanf("%s",s);fun(s); printf("%s\n",s);}
程序運行后輸入: abcdef<回車 >,則輸出結果是 【 12】 。
(13)以下程序的功能是:將值為三位正整數(shù)的變量 x中的數(shù)值按照個位、十位、百位的順序拆分并輸出。請?zhí)羁铡?/p>
#include
main()
{ int x=256;
printf("%d-%d-%d\n",【 13】 ,x/10%10,x/100);
}
(14)以下程序用以刪除字符串所有的空格,請?zhí)羁铡?/p>
#include
main()
{ chars[100]={"Our teacher teach C language!"};int i,j;
for(i=j=0;s[i]!=’ \0’ ;i++)
if(s[i]!= '') {s[j]=s[i];j++;}
s[j]= 【 14】
printf(“ %s\n” ,s);
}
(15)以下程序的功能是:借助指針變量找出數(shù)組元素中的最大值及其元素的下標值。請?zhí)羁铡?/p>
#include
main()
{ inta[10],*p,*s;
for(p=a;p-a<10;p++)scanf("%d",p);
for(p=a,s=a;p-a<10;p++)if(*p>*s) s= 【 15】 ;
printf(“ index=%d\n” ,s-a);
}
【下半年計算機考試二級C筆試試題文字版】相關文章:
計算機二級考試C++試題03-09
計算機二級考試C++試題及答案03-27
2017下半年計算機二級C++考試試題03-06
2017計算機二級C++考試試題03-05
計算機二級C語言考試試題及答案03-08
計算機二級C語言考試上機沖刺試題及答案03-03