(1)最簡單的交換排序方法是
A)快速排序
B)選擇排序
C)堆排序
D)冒泡排序
(2)棧通常采用的兩種存儲結(jié)構(gòu)是
A)線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)
B)散列方式和索引方式
C)鏈表存儲結(jié)構(gòu)和數(shù)組
D)線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
(3)線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是
A)順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
B)隨機(jī)存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
C)隨機(jī)存取的存儲結(jié)構(gòu)、隨機(jī)存取的存儲結(jié)構(gòu)
D)任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)
(4)完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例的測試方法是
A)黑箱測試法 B)白箱測試法
C)錯(cuò)誤推測法 D)安裝測試法
(5)在結(jié)構(gòu)化設(shè)計(jì)方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示
A)模塊之間的調(diào)用關(guān)系 B)程序的組成成分
C)控制程序的執(zhí)行順序 D)數(shù)據(jù)的流向
(6)下列選項(xiàng)中,不屬于模塊間耦合的是
A)數(shù)據(jù)耦合 B)同構(gòu)耦合
C)異構(gòu)耦合 D)公用耦合
(7)一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為
A)對應(yīng)關(guān)系 B)單一關(guān)系
C)一元關(guān)系 D)二元關(guān)系
(8)為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是
A)高級語言
B)數(shù)據(jù)描述語言(DDL)
C)數(shù)據(jù)操縱語言(DML)
D)匯編語言
(9)相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和
A)可重用性差 B)安全性差
C)非持久性 D)冗余性
(10)需求分析階段的任務(wù)是確定
A)軟件開發(fā)方法 B)軟件開發(fā)工具
C)軟件開發(fā)費(fèi)用 D)軟件系統(tǒng)功能
(11)下列關(guān)于C語言的說法不正確的是
A)C語言既具有高級語言的一切功能,也具有低級語言的一些功能
B)C語言中的每一條執(zhí)行語句都必須用分號結(jié)束,分號不是C語言的一部分,是語句之間的分隔符號
C)注釋可以出現(xiàn)在程序中任意合適的地方
D)命令行后面不能加分號,命令行不是C語言的語句
(12)下列關(guān)于標(biāo)識符的說法中錯(cuò)誤的是
A)合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B)C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符
C)C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D)用戶標(biāo)識符與關(guān)鍵字不同時(shí),程序在執(zhí)行時(shí)將給出出錯(cuò)信息
(13)下列合法的整型常量的表示是
A)098
B)oXde
C)32767
D)0xDG
(14)現(xiàn)在有以下定義,int a;double b;float c;char k;則下面的表達(dá)式a/b+c-k值的類型為:
A)int
B)double
C)float
D)char
(15)假設(shè)整型變量a,b,c的值均為5,則表達(dá)式a+++b+++c++的值為
A)17
B)16
C)15
D)14
(16)下列關(guān)于復(fù)合語句和空語句的說法錯(cuò)誤的是
A)復(fù)合語句是由“{”開頭,由“}”結(jié)尾的
B)復(fù)合語句在語法上視為一條語句
C)復(fù)合語句內(nèi),可以有執(zhí)行語句,不可以有定義語句部分
D)C程序中的所有語句都必須由一個(gè)分號作為結(jié)束
(17)關(guān)于printf()函數(shù)的返回值敘述正確的是
A)通常是本次調(diào)用中輸出字符的個(gè)數(shù)
B)通常是輸出的第一個(gè)數(shù)值
C)通常返回布爾值真
D)通常返回非零值
(18)現(xiàn)有格式化輸入語句,scanf("x=%dц,sumцy=%d,lineцz=%dL",&x,&y,&z);,現(xiàn)在已知在輸入數(shù)據(jù)后,x,y,z的值分別是12,34,45,則下列數(shù)據(jù)是正確的輸入格式的是
A)12,34,45
B)x=12,y=34,z=45
C)x=12C,sumy=34,z=45
D)x=12],sum]y=34,line]z=45
[注]:“ц”表示空格, 表示回車
(19)設(shè)x,y,z,t均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x||++y&&++z;則執(zhí)行這個(gè)語句后t的值為
A)2
B)1
C)0
D)不定值
(20)現(xiàn)有如下程序段,此程序段編譯有錯(cuò)誤,則程序段的錯(cuò)誤出在
#include
main()
{ int a=30,b=40,c=50,d;
d=a>30?b:c;
switch(d){case a:printf("%d,",a);
case b:printf("%d,",b);
case c:printf("%d,",c);
default:printf("#");}}
A)default:printf("#");這個(gè)語句
B)d=a>30?b:c;這個(gè)語句
C)case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);這三個(gè)語句
D)switch(d)這個(gè)語句
(21)下列語句中,錯(cuò)誤的是(x,y,a,b假設(shè)已經(jīng)定義好)
A)while(x=y)5;
B)do x++ while(x==10);
C)while(0);
D)do 2;while(a==b);
(22)若i,j已經(jīng)定義為整型,則以下程序段中,內(nèi)循環(huán)體的執(zhí)行次數(shù)是
for(i=6;i;i--)
for(j=0;j<5;j++){……}
A)40
B)35
C)30
D)25
(23)下列說法中錯(cuò)誤的是
A)只能在循環(huán)體內(nèi)使用break語句
B)在循環(huán)體內(nèi)使用break語句可以使流程跳出本層循環(huán)體,從而提前結(jié)束本層循環(huán)
C)在while和do…while循環(huán)中,continue語句并沒有使整個(gè)循環(huán)終止
D)continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)判斷
(24)閱讀如下程序段
#include "stdio.h"
main()
{ int x,a,b;
scanf("%d",&x);
a=b=x;
for(;x!=0;)
{ if(x if(x>a)a=x;
scanf("%d",&x);}
printf("a=%d,b=%d\n",a,b);}
現(xiàn)輸入如下。[注] :′ц′表示空格
34ц56ц23ц45ц5ц56ц7ц12ц365ц49ц48ц57ц87ц7ц6ц7569ц789ц0
輸入后輸出結(jié)果是
A)a=7569,b=789
B)a=5,b=365
C)a=7,b=789
D)a=7569,b=5
(25)下面關(guān)于字符常量的說法錯(cuò)誤的是
A)一個(gè)字符常量代表ASCII字符集中的一個(gè)字符
B)單引號中的大寫字母和小寫字母代表不同的字符常量
C)字符常量只能包含一個(gè)字符
D)字符常量可以用單引號或雙引號括起來(26)現(xiàn)有如下程序
#include "stdio.h"
int fun(int x)
{printf("x=%d\n",++x);}
main()
{fun(12+5);}
則程序的輸出結(jié)果是
A)12
B)13
C)17
D)18
(27)現(xiàn)有如下程序段
#include "stdio.h"
int aa(int x,int y);
main()
{int a=24,b=16,c;
c=aa(a,b);
printf("%d\n",c);}
int aa(int x,int y)
{int w;
while(y)
{w=x%y;
x=y;
y=w;}
return x;}
則程序段的輸出結(jié)果是
A)8
B)7
C)6
D)5
(28)下列說法錯(cuò)誤的是
A)函數(shù)調(diào)用時(shí),函數(shù)名必須與所調(diào)用的函數(shù)名字完全相同
B)實(shí)參的個(gè)數(shù)必須與形式參數(shù)的個(gè)數(shù)一致
C)實(shí)參可以是表達(dá)式,在類型上必須與形參一一對應(yīng)匹配
D)C語言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)
(29)函數(shù)的值通過return語句返回,下面關(guān)于return語句的形式描述錯(cuò)誤的是
A)return表達(dá)式;
B)return(表達(dá)式);
C)一個(gè)return語句可以返回多個(gè)函數(shù)值
D)一個(gè)return語句只能返回一個(gè)函數(shù)值
(30)現(xiàn)有如下定義:int a,b,*p,*q;,則下列賦值語句錯(cuò)誤的是
A)p=&a;
B)q=&b;
C)p=q;
D)p=a;
(31)現(xiàn)有如下程序段
#include "stdio.h"
int *fun(int *a,int *b)
{int c;
c=*a%*b;
return &c;}
main()
{int a=5,b=19,*c;
c=fun(&a,&b);
printf("%d\n",++*c);}
則程序段執(zhí)行后的結(jié)果為
A)8
B)7
C)6
D)5
(32)現(xiàn)有int a,*b;,b=&a;,則下列運(yùn)算錯(cuò)誤的是
A)*&a
B)&*a
C)*&b
D)&*b
(33)現(xiàn)有如下程序段
#include "stdio.h"
main()
{ int k[30]={12,324,45,6,768,98,21,34,453,456};
int count=0,i=0;
while(k[i])
{ if(k[i]%2==0‖k[i]%5==0)count++;
i++; }
printf("%d,%d\n",count,i);}
則程序段的輸出結(jié)果為
A)7,8
B)8,8
C)7,10
D)8,10
(34)現(xiàn)有如下定義語句
int*p,s[20],i;
p=s;
表示數(shù)組元素s[i]的表達(dá)式不正確的是
A)*(s+i)
B)*(p+i)
C)*(s=s+i)
D)*(p=p+i)
(35)閱讀如下程序段,這個(gè)程序在編譯的時(shí)候會有一個(gè)警告,下列關(guān)于這個(gè)警告敘述正確的是
#include "stdio.h"
#define N 10
int *fun(int a[N],int n)
{ int i,b[N];
for(i=0;i b[i]=a[i];
return(b);}
main()
{ int a[N]={12,34,45,5,6,34,4,655,2};
int *k;
k=fun(a[N],5);
printf("%d\n",*k);}
A)指針k沒有指向任何對象而成為“無向指針”,所以這里會產(chǎn)生警告
B)return語句不應(yīng)該有括號,所以在這里會有警告
C)return語句的返回值類型與指針k的基類型不一致,這里會產(chǎn)生警告
D)數(shù)組賦值的時(shí)候沒有把數(shù)組全部都賦初值,所以在這里會有警告
(36)有如下定義語句:int aa[][3]={12,23,34,4,5,6,78,89,45};,則45在數(shù)組aa中的行列坐標(biāo)各為
A)3,2
B)3,1
C)2,2
D)2,1
(37)現(xiàn)有如下程序段
#include "stdio.h"
main()
{int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};
int i=0,j=5;
printf("%d\n",*(&a[0][0]+2*i+j-2));}
則程序的輸出結(jié)果為
A)21
B)78
C)23
D)28
(38)下列程序的輸出結(jié)果是
#include "stdio.h"
#define N 3
#define M 3
void fun(int a[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{int a[M][N];
int i,j;
for(i=0;i for(j=0;j a[i][j]=i+j-(i-j);
fun(a);}
A)3
B)4
C)5
D)6
(39)下列關(guān)于字符串的說法中錯(cuò)誤的是
A)在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志
B)′\0′作為標(biāo)志占用存儲空間,計(jì)入串的實(shí)際長度
C)在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′
D)在C語言中,字符串常量隱含處理成以′\0′結(jié)尾
(40)有下面程序段
#include "stdio.h"
#include "string.h"
main()
{char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};
char k[100]={0},*p=k;
int i;
for(i=0;i<3;i++)
{ p=strcat(p,a[i]);}
i=strlen(p);
printf("%d\n",i);}
則程序段的輸出結(jié)果是
A)18
B)19
C)20
D)21
(41)現(xiàn)有如下程序段
#include "stdio.h"
#include "string.h"
main()
{char a[]="acfijk";/*這里是有序的字符序列*/
char b[]="befijklqswz";/*這里是有序的字符序列*/
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!=′\0′ && b[j]!=′\0′)
{if(a[i] else if(a[i]>b[j])c[k++]=b[j++];
else {c[k++]=b[j++];
i++;}}
while(a[i]==′\0′ && b[j]!=′\0′)
c[k++]=b[j++];
while(a[i]!=′\0′ && b[j]==′\0′)
c[k++]=a[i++];
c[k]=′\0′;
puts(c);}
則輸出結(jié)果是
A)acfijkbefijklqswz
B)abceffiijjkklqswz
C)befijklqswz acfijk
D)abcefijklqswz
(42)現(xiàn)在有如下程序
#include "stdio.h"
main()
{char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=′\0′;i++)
if(s[i]!=′H′______)
s[j]=′\0′;
puts(s);}
這個(gè)程序段的功能是刪除輸入的字符串中字符′H′,則空線上應(yīng)當(dāng)添入的是
A)s[j++]=s[i];j++;
B)s[j]=s[i++];j++;
C)s[j++]=s[i];
D)s[j]=s[i];
(43)下列說法中錯(cuò)誤的是
A)靜態(tài)局部變量的初值是在編譯時(shí)賦予的,在程序執(zhí)行期間不再賦予初值
B)若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽
C)靜態(tài)全局變量可以被其他的編輯單位所引用
D)所有自動類局部變量的存儲單元都是在進(jìn)入這些局部變量所在的函數(shù)體(或復(fù)合語
句)時(shí)生成,退出其所在的函數(shù)體(或復(fù)合語句)時(shí)消失
(44)閱讀下列程序段,則程序的輸出結(jié)果為
#include "stdio.h"
#define M(X,Y)(X)*(Y)
#define N(X,Y)(X)/(Y)
main()
{int a=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);}
A)3
B)5
C)6
D)8
(45)若有以下定義和語句
struct a
{ int n,m;};
struct a st[3]={{1,20},{2,19},{3,21}};
struct a *p=st;
則以下錯(cuò)誤的引用是
A)(p++)->n;
B)st[0].n;
C)(*p).n;
D)p=&st.m;
(46)假設(shè)有如下定義:struct a{int n;float k;}data,*p;若要使p指向data中的成員n,正確的賦值語句是
A)p=&data.n;
B)*p=data.n;
C)p=(struct a *)&data.n;
D)p=(struct a *)data.n;
(47)下面函數(shù)的功能是將指針t2所指向的線性鏈表,鏈接到t1所指向的鏈表的末端。假定t1所指向的鏈表非空
struct node{ float x;struct node *next;};
connect(struct node *t1, struct node *t2)
{ if(t1->next==NULL)t1->next=t2;
else connect(______ ,t2); }
要實(shí)現(xiàn)此功能則應(yīng)該添入的選項(xiàng)是
A)t1.next
B)++t1.next
C)t1->next
D)++t1->next
(48)C語言結(jié)構(gòu)體類型變量在程序運(yùn)行期間
A)TC環(huán)境在內(nèi)存中僅僅開辟一個(gè)存放結(jié)構(gòu)體變量地址的單元
B)所有的成員一直駐留在內(nèi)存中
C)只有最開始的成員駐留在內(nèi)存中
D)部分成員駐留在內(nèi)存中
(49)有下列運(yùn)算符:~,&,<<,>>, |,^,則運(yùn)算的優(yōu)先順序是
A)~,&, |,<<,>>,^
B)~,<<,>>,&, |,^
C)~,<<,>>,^, &,|
D)~,<<,>>,&,^, |
(50)最簡單的交換排序方法是
A)快速排序 B)選擇排序
C)堆排序 D)冒泡排序二、填空題
(1)棧和隊(duì)列通常采用的存儲結(jié)構(gòu)是 【1】 。
【命題目的】考查考生對數(shù)據(jù)結(jié)構(gòu)基本知識的了解。
【解題要點(diǎn)】棧和隊(duì)列都屬于線性表,它們一般采用順序存儲結(jié)構(gòu),也可以對它們采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
【考點(diǎn)鏈接】棧、數(shù)組、表采用的存儲結(jié)構(gòu),各種存儲結(jié)構(gòu)的定義和區(qū)別。
(2)在程序設(shè)計(jì)階段應(yīng)該采取 【2】 和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語言寫成程序。
【命題目的】讓考生對程序設(shè)計(jì)有較深入的了解。
【考點(diǎn)鏈接】系統(tǒng)設(shè)計(jì)其他階段的內(nèi)容。
(3)軟件結(jié)構(gòu)是以 【3】 為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
【命題目的】考查考生對軟件結(jié)構(gòu)的了解。
【解題要點(diǎn)】采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解,模塊化使得軟件容易測試和調(diào)試,因而有利于提高軟件的可靠性,也有利于軟件的組織管理,大型程序可由不同的程序員編寫不同的模塊,并且可以進(jìn)一步分配技術(shù)熟練的程序員編寫困難的部分。
【考點(diǎn)鏈接】軟件結(jié)構(gòu)的定義,模塊操作其他的所有特點(diǎn)。
(4)數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨(dú)立性,數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和 【4】 兩個(gè)含義。
【命題目的】考查考生對數(shù)據(jù)庫基本知識(數(shù)據(jù)獨(dú)立性)的了解。
【解題要點(diǎn)】數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩個(gè)含義。
【考點(diǎn)鏈接】在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨(dú)立性的特點(diǎn)。
(5)數(shù)據(jù)庫保護(hù)分為:安全性控制、 【5】 、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
【命題目的】考查考生對數(shù)據(jù)庫基本知識的了解。
【解題要點(diǎn)】安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯(cuò)誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯(cuò)誤發(fā)生;恢復(fù):當(dāng)數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時(shí),使數(shù)據(jù)庫能恢復(fù)到正確的狀態(tài)。
【考點(diǎn)鏈接】數(shù)據(jù)庫的其他用途,如數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)管理等。
(6)語句printf("%f\n",13.0*(1/5));的輸出結(jié)果為 【6】 。
【命題目的】考查對于基本運(yùn)算符的掌握情況。
【解題要點(diǎn)】/表示整除,1/5為0,0乘以任何數(shù)都得零,但是與浮點(diǎn)型相乘,要轉(zhuǎn)化為浮點(diǎn)型,所以結(jié)果為0.000000。
【考點(diǎn)鏈接】在一個(gè)運(yùn)算符的兩邊如果一個(gè)是字符型,一個(gè)是整型,則把字符型轉(zhuǎn)換為整型之后再進(jìn)行運(yùn)算。
(7)閱讀下面語句,則程序的執(zhí)行結(jié)果是 【7】 。
#include "stdio.h"
main()
{ int a=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
else printf("%d,%d\n",b,a);}
【命題目的】考查對于if語句的掌握情況。
【解題要點(diǎn)】與運(yùn)算兩邊的語句必須同時(shí)為真時(shí),結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。
【考點(diǎn)鏈接】++,--運(yùn)算符。
(8)閱讀下面語句,則執(zhí)行后的輸出結(jié)果為 【8】
#include "stdio.h"
main()
{char a,b;
for(a=′0′,b=′9′;a printf("%c%c",a,b);
printf("\n");}
【命題目的】考查對于for循環(huán)的掌握情況。
【解題要點(diǎn)】for是C語言的關(guān)鍵字,其后的一對圓括號中通常含有三個(gè)表達(dá)式,各個(gè)表達(dá)式之間用分號隔開,這三個(gè)表達(dá)式可以是任意形式的表達(dá)式,通常主要用于for循環(huán)控制。
【考點(diǎn)鏈接】對字符型的運(yùn)算實(shí)際上是對其ASCII碼值的運(yùn)算。
(9)閱讀下面程序,則執(zhí)行后程序的結(jié)果為 【9】
#include "stdio.h"
main()
{ int a=0,b=0;
while(a<15)a++;
while(b++<15);
printf("%d,%d\n",a,b);}
【命題目的】考查對于while循環(huán)的掌握情況。
【解題要點(diǎn)】while是C語言的關(guān)鍵字,while后一對圓括號中的表達(dá)式,可以是C語言中任意合法的表達(dá)式,由它來控制循環(huán)體是否執(zhí)行。
【考點(diǎn)鏈接】在語法上要求循環(huán)體可以是一條簡單可執(zhí)行語句,并且還要注意循環(huán)控制表達(dá)式的判斷條件。
(10)在使用putchar和getchar函數(shù)處理字符時(shí),必須在程序的開頭出現(xiàn)包含頭文件的命令行是 【10】 。
【命題目的】考查對于基礎(chǔ)知識的掌握情況。
【解題要點(diǎn)】使用putchar和getchar函數(shù)時(shí),必須在程序的開頭出現(xiàn)包含頭文件#include "stdio.h"的命令行。
【考點(diǎn)鏈接】putchar的函數(shù)調(diào)用形式為:putchar(字符變量或字符常量);getchar函數(shù)的調(diào)用形式為:變量=getchar();getchar后的一對圓括號內(nèi)沒有參數(shù),但這一對圓括號不可少。
(11)下列程序的輸出結(jié)果是 【11】 , 【12】 。
#include
main()
{ float a=-1.3;b=1.3;
printf("%f,%f",fabs(a),fabs(b);}
【命題目的】主要考查math庫函數(shù)。
【解題要點(diǎn)】本題是求浮點(diǎn)數(shù)的絕對值。
【考點(diǎn)鏈接】常用的math函數(shù)。
(12)設(shè)有以下定義和語句,則*(*(p+2)+1)的值為 【13】 。
int a[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
【命題目的】主要考查對于通過建立行指針來引用二維數(shù)組元素的掌握情況。
【解題要點(diǎn)】*(*(p+2)+1)相當(dāng)于訪問的是a[2][1]的值。
【考點(diǎn)鏈接】*(p[2]+1)、p[2][1]以及(*(p+2))[1]表達(dá)的含義都是a[2][1]的值。
(13)有下列程序,功能是把輸入的十進(jìn)制長整型數(shù)以十六進(jìn)制的形式輸出,完成程序
#include "stdio.h"
main()
{char b[17]={"0123456789ABCDEF"};
int c[50],d,i=0,base=16;
long n;
scanf("%ld",&n);
do{c[i]=nºse;i++;n= 【14】 ;}
while(n!=0);
for(--i;i>=0;--i)
{d= 【15】 ;printf("%c",b[d]);}
printf("H\n");}
【命題目的】考查字符串的實(shí)際運(yùn)用的理解程度。
【解題要點(diǎn)】字符串的綜合運(yùn)用。
【考點(diǎn)鏈接】這是一種常用的十進(jìn)制轉(zhuǎn)換成十六進(jìn)制的方法,應(yīng)該掌握。
(14)現(xiàn)有如下程序段,則程序段的輸出結(jié)果為 【16】 。
#include "stdio.h"
int fun()
{static int k;
return k;}
main()
{int m;
m=fun();
printf("%d\n",m);}
【命題目的】考查對于靜態(tài)存儲類的局部變量的掌握情況。
【解題要點(diǎn)】在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)著永久性的存儲單元。即使退出函數(shù)以后,下次再進(jìn)入函數(shù)時(shí),靜態(tài)局部變量仍使用原來的存儲單元,如未賦初值,則系統(tǒng)會自動賦值為0。
【考點(diǎn)鏈接】C語言中,有兩種存儲類別:一種是自動類;一種是靜態(tài)類。局部變量既可以說明成自動類型;也可以說明成靜態(tài)類型;而全局變量只能是靜態(tài)類型。
(15)現(xiàn)有如下定義:struct aa{int a;float b;char c;}*p;現(xiàn)需用malloc函數(shù)動態(tài)的申請一個(gè)struct aa類型大小的空間(由p指向),則定義的語句為: 【17】 。
【命題目的】考查對于動態(tài)空間申請函數(shù)的掌握情況。
【解題要點(diǎn)】ANSI C標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void *,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsigned int。由于返回類型為void *,所以在調(diào)用函數(shù)時(shí),必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。
【考點(diǎn)鏈接】free函數(shù)的作用是釋放申請的內(nèi)存空間。
(16)有如圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:

{ int data;
【18】 } node;
【命題目的】考查對于結(jié)構(gòu)體對鏈表的定義掌握情況。
【解題要點(diǎn)】結(jié)構(gòu)體對鏈表的定義。
(17)當(dāng)調(diào)函數(shù)frend從磁盤文件中讀取數(shù)據(jù)時(shí),若函數(shù)數(shù)的返回時(shí)為5,則表明 【19】 ;若函數(shù)的返回值為0,則表明 【20】 。【命題目的】考查對于函數(shù)基本操作的掌握情況。
【解題要點(diǎn)】fread函數(shù)的調(diào)用形式為fread(buffer,size,cout,fp);其中buffer是數(shù)據(jù)塊的指針,size表示每個(gè)數(shù)據(jù)塊的字節(jié)數(shù)。count用來指定每讀、寫一次,輸入\輸出數(shù)據(jù)塊的個(gè)數(shù)(每個(gè)數(shù)據(jù)塊有size個(gè)字節(jié))。fp是文件的指針。
A)快速排序
B)選擇排序
C)堆排序
D)冒泡排序
(2)棧通常采用的兩種存儲結(jié)構(gòu)是
A)線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)
B)散列方式和索引方式
C)鏈表存儲結(jié)構(gòu)和數(shù)組
D)線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
(3)線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是
A)順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
B)隨機(jī)存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
C)隨機(jī)存取的存儲結(jié)構(gòu)、隨機(jī)存取的存儲結(jié)構(gòu)
D)任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)
(4)完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例的測試方法是
A)黑箱測試法 B)白箱測試法
C)錯(cuò)誤推測法 D)安裝測試法
(5)在結(jié)構(gòu)化設(shè)計(jì)方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示
A)模塊之間的調(diào)用關(guān)系 B)程序的組成成分
C)控制程序的執(zhí)行順序 D)數(shù)據(jù)的流向
(6)下列選項(xiàng)中,不屬于模塊間耦合的是
A)數(shù)據(jù)耦合 B)同構(gòu)耦合
C)異構(gòu)耦合 D)公用耦合
(7)一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為
A)對應(yīng)關(guān)系 B)單一關(guān)系
C)一元關(guān)系 D)二元關(guān)系
(8)為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是
A)高級語言
B)數(shù)據(jù)描述語言(DDL)
C)數(shù)據(jù)操縱語言(DML)
D)匯編語言
(9)相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和
A)可重用性差 B)安全性差
C)非持久性 D)冗余性
(10)需求分析階段的任務(wù)是確定
A)軟件開發(fā)方法 B)軟件開發(fā)工具
C)軟件開發(fā)費(fèi)用 D)軟件系統(tǒng)功能
(11)下列關(guān)于C語言的說法不正確的是
A)C語言既具有高級語言的一切功能,也具有低級語言的一些功能
B)C語言中的每一條執(zhí)行語句都必須用分號結(jié)束,分號不是C語言的一部分,是語句之間的分隔符號
C)注釋可以出現(xiàn)在程序中任意合適的地方
D)命令行后面不能加分號,命令行不是C語言的語句
(12)下列關(guān)于標(biāo)識符的說法中錯(cuò)誤的是
A)合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B)C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符
C)C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D)用戶標(biāo)識符與關(guān)鍵字不同時(shí),程序在執(zhí)行時(shí)將給出出錯(cuò)信息
(13)下列合法的整型常量的表示是
A)098
B)oXde
C)32767
D)0xDG
(14)現(xiàn)在有以下定義,int a;double b;float c;char k;則下面的表達(dá)式a/b+c-k值的類型為:
A)int
B)double
C)float
D)char
(15)假設(shè)整型變量a,b,c的值均為5,則表達(dá)式a+++b+++c++的值為
A)17
B)16
C)15
D)14
(16)下列關(guān)于復(fù)合語句和空語句的說法錯(cuò)誤的是
A)復(fù)合語句是由“{”開頭,由“}”結(jié)尾的
B)復(fù)合語句在語法上視為一條語句
C)復(fù)合語句內(nèi),可以有執(zhí)行語句,不可以有定義語句部分
D)C程序中的所有語句都必須由一個(gè)分號作為結(jié)束
(17)關(guān)于printf()函數(shù)的返回值敘述正確的是
A)通常是本次調(diào)用中輸出字符的個(gè)數(shù)
B)通常是輸出的第一個(gè)數(shù)值
C)通常返回布爾值真
D)通常返回非零值
(18)現(xiàn)有格式化輸入語句,scanf("x=%dц,sumцy=%d,lineцz=%dL",&x,&y,&z);,現(xiàn)在已知在輸入數(shù)據(jù)后,x,y,z的值分別是12,34,45,則下列數(shù)據(jù)是正確的輸入格式的是
A)12,34,45
B)x=12,y=34,z=45
C)x=12C,sumy=34,z=45
D)x=12],sum]y=34,line]z=45
[注]:“ц”表示空格, 表示回車
(19)設(shè)x,y,z,t均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x||++y&&++z;則執(zhí)行這個(gè)語句后t的值為
A)2
B)1
C)0
D)不定值
(20)現(xiàn)有如下程序段,此程序段編譯有錯(cuò)誤,則程序段的錯(cuò)誤出在
#include
main()
{ int a=30,b=40,c=50,d;
d=a>30?b:c;
switch(d){case a:printf("%d,",a);
case b:printf("%d,",b);
case c:printf("%d,",c);
default:printf("#");}}
A)default:printf("#");這個(gè)語句
B)d=a>30?b:c;這個(gè)語句
C)case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);這三個(gè)語句
D)switch(d)這個(gè)語句
(21)下列語句中,錯(cuò)誤的是(x,y,a,b假設(shè)已經(jīng)定義好)
A)while(x=y)5;
B)do x++ while(x==10);
C)while(0);
D)do 2;while(a==b);
(22)若i,j已經(jīng)定義為整型,則以下程序段中,內(nèi)循環(huán)體的執(zhí)行次數(shù)是
for(i=6;i;i--)
for(j=0;j<5;j++){……}
A)40
B)35
C)30
D)25
(23)下列說法中錯(cuò)誤的是
A)只能在循環(huán)體內(nèi)使用break語句
B)在循環(huán)體內(nèi)使用break語句可以使流程跳出本層循環(huán)體,從而提前結(jié)束本層循環(huán)
C)在while和do…while循環(huán)中,continue語句并沒有使整個(gè)循環(huán)終止
D)continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)判斷
(24)閱讀如下程序段
#include "stdio.h"
main()
{ int x,a,b;
scanf("%d",&x);
a=b=x;
for(;x!=0;)
{ if(x if(x>a)a=x;
scanf("%d",&x);}
printf("a=%d,b=%d\n",a,b);}
現(xiàn)輸入如下。[注] :′ц′表示空格
34ц56ц23ц45ц5ц56ц7ц12ц365ц49ц48ц57ц87ц7ц6ц7569ц789ц0
輸入后輸出結(jié)果是
A)a=7569,b=789
B)a=5,b=365
C)a=7,b=789
D)a=7569,b=5
(25)下面關(guān)于字符常量的說法錯(cuò)誤的是
A)一個(gè)字符常量代表ASCII字符集中的一個(gè)字符
B)單引號中的大寫字母和小寫字母代表不同的字符常量
C)字符常量只能包含一個(gè)字符
D)字符常量可以用單引號或雙引號括起來(26)現(xiàn)有如下程序
#include "stdio.h"
int fun(int x)
{printf("x=%d\n",++x);}
main()
{fun(12+5);}
則程序的輸出結(jié)果是
A)12
B)13
C)17
D)18
(27)現(xiàn)有如下程序段
#include "stdio.h"
int aa(int x,int y);
main()
{int a=24,b=16,c;
c=aa(a,b);
printf("%d\n",c);}
int aa(int x,int y)
{int w;
while(y)
{w=x%y;
x=y;
y=w;}
return x;}
則程序段的輸出結(jié)果是
A)8
B)7
C)6
D)5
(28)下列說法錯(cuò)誤的是
A)函數(shù)調(diào)用時(shí),函數(shù)名必須與所調(diào)用的函數(shù)名字完全相同
B)實(shí)參的個(gè)數(shù)必須與形式參數(shù)的個(gè)數(shù)一致
C)實(shí)參可以是表達(dá)式,在類型上必須與形參一一對應(yīng)匹配
D)C語言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)
(29)函數(shù)的值通過return語句返回,下面關(guān)于return語句的形式描述錯(cuò)誤的是
A)return表達(dá)式;
B)return(表達(dá)式);
C)一個(gè)return語句可以返回多個(gè)函數(shù)值
D)一個(gè)return語句只能返回一個(gè)函數(shù)值
(30)現(xiàn)有如下定義:int a,b,*p,*q;,則下列賦值語句錯(cuò)誤的是
A)p=&a;
B)q=&b;
C)p=q;
D)p=a;
(31)現(xiàn)有如下程序段
#include "stdio.h"
int *fun(int *a,int *b)
{int c;
c=*a%*b;
return &c;}
main()
{int a=5,b=19,*c;
c=fun(&a,&b);
printf("%d\n",++*c);}
則程序段執(zhí)行后的結(jié)果為
A)8
B)7
C)6
D)5
(32)現(xiàn)有int a,*b;,b=&a;,則下列運(yùn)算錯(cuò)誤的是
A)*&a
B)&*a
C)*&b
D)&*b
(33)現(xiàn)有如下程序段
#include "stdio.h"
main()
{ int k[30]={12,324,45,6,768,98,21,34,453,456};
int count=0,i=0;
while(k[i])
{ if(k[i]%2==0‖k[i]%5==0)count++;
i++; }
printf("%d,%d\n",count,i);}
則程序段的輸出結(jié)果為
A)7,8
B)8,8
C)7,10
D)8,10
(34)現(xiàn)有如下定義語句
int*p,s[20],i;
p=s;
表示數(shù)組元素s[i]的表達(dá)式不正確的是
A)*(s+i)
B)*(p+i)
C)*(s=s+i)
D)*(p=p+i)
(35)閱讀如下程序段,這個(gè)程序在編譯的時(shí)候會有一個(gè)警告,下列關(guān)于這個(gè)警告敘述正確的是
#include "stdio.h"
#define N 10
int *fun(int a[N],int n)
{ int i,b[N];
for(i=0;i b[i]=a[i];
return(b);}
main()
{ int a[N]={12,34,45,5,6,34,4,655,2};
int *k;
k=fun(a[N],5);
printf("%d\n",*k);}
A)指針k沒有指向任何對象而成為“無向指針”,所以這里會產(chǎn)生警告
B)return語句不應(yīng)該有括號,所以在這里會有警告
C)return語句的返回值類型與指針k的基類型不一致,這里會產(chǎn)生警告
D)數(shù)組賦值的時(shí)候沒有把數(shù)組全部都賦初值,所以在這里會有警告
(36)有如下定義語句:int aa[][3]={12,23,34,4,5,6,78,89,45};,則45在數(shù)組aa中的行列坐標(biāo)各為
A)3,2
B)3,1
C)2,2
D)2,1
(37)現(xiàn)有如下程序段
#include "stdio.h"
main()
{int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};
int i=0,j=5;
printf("%d\n",*(&a[0][0]+2*i+j-2));}
則程序的輸出結(jié)果為
A)21
B)78
C)23
D)28
(38)下列程序的輸出結(jié)果是
#include "stdio.h"
#define N 3
#define M 3
void fun(int a[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{int a[M][N];
int i,j;
for(i=0;i for(j=0;j a[i][j]=i+j-(i-j);
fun(a);}
A)3
B)4
C)5
D)6
(39)下列關(guān)于字符串的說法中錯(cuò)誤的是
A)在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志
B)′\0′作為標(biāo)志占用存儲空間,計(jì)入串的實(shí)際長度
C)在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′
D)在C語言中,字符串常量隱含處理成以′\0′結(jié)尾
(40)有下面程序段
#include "stdio.h"
#include "string.h"
main()
{char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};
char k[100]={0},*p=k;
int i;
for(i=0;i<3;i++)
{ p=strcat(p,a[i]);}
i=strlen(p);
printf("%d\n",i);}
則程序段的輸出結(jié)果是
A)18
B)19
C)20
D)21
(41)現(xiàn)有如下程序段
#include "stdio.h"
#include "string.h"
main()
{char a[]="acfijk";/*這里是有序的字符序列*/
char b[]="befijklqswz";/*這里是有序的字符序列*/
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!=′\0′ && b[j]!=′\0′)
{if(a[i] else if(a[i]>b[j])c[k++]=b[j++];
else {c[k++]=b[j++];
i++;}}
while(a[i]==′\0′ && b[j]!=′\0′)
c[k++]=b[j++];
while(a[i]!=′\0′ && b[j]==′\0′)
c[k++]=a[i++];
c[k]=′\0′;
puts(c);}
則輸出結(jié)果是
A)acfijkbefijklqswz
B)abceffiijjkklqswz
C)befijklqswz acfijk
D)abcefijklqswz
(42)現(xiàn)在有如下程序
#include "stdio.h"
main()
{char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=′\0′;i++)
if(s[i]!=′H′______)
s[j]=′\0′;
puts(s);}
這個(gè)程序段的功能是刪除輸入的字符串中字符′H′,則空線上應(yīng)當(dāng)添入的是
A)s[j++]=s[i];j++;
B)s[j]=s[i++];j++;
C)s[j++]=s[i];
D)s[j]=s[i];
(43)下列說法中錯(cuò)誤的是
A)靜態(tài)局部變量的初值是在編譯時(shí)賦予的,在程序執(zhí)行期間不再賦予初值
B)若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽
C)靜態(tài)全局變量可以被其他的編輯單位所引用
D)所有自動類局部變量的存儲單元都是在進(jìn)入這些局部變量所在的函數(shù)體(或復(fù)合語
句)時(shí)生成,退出其所在的函數(shù)體(或復(fù)合語句)時(shí)消失
(44)閱讀下列程序段,則程序的輸出結(jié)果為
#include "stdio.h"
#define M(X,Y)(X)*(Y)
#define N(X,Y)(X)/(Y)
main()
{int a=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);}
A)3
B)5
C)6
D)8
(45)若有以下定義和語句
struct a
{ int n,m;};
struct a st[3]={{1,20},{2,19},{3,21}};
struct a *p=st;
則以下錯(cuò)誤的引用是
A)(p++)->n;
B)st[0].n;
C)(*p).n;
D)p=&st.m;
(46)假設(shè)有如下定義:struct a{int n;float k;}data,*p;若要使p指向data中的成員n,正確的賦值語句是
A)p=&data.n;
B)*p=data.n;
C)p=(struct a *)&data.n;
D)p=(struct a *)data.n;
(47)下面函數(shù)的功能是將指針t2所指向的線性鏈表,鏈接到t1所指向的鏈表的末端。假定t1所指向的鏈表非空
struct node{ float x;struct node *next;};
connect(struct node *t1, struct node *t2)
{ if(t1->next==NULL)t1->next=t2;
else connect(______ ,t2); }
要實(shí)現(xiàn)此功能則應(yīng)該添入的選項(xiàng)是
A)t1.next
B)++t1.next
C)t1->next
D)++t1->next
(48)C語言結(jié)構(gòu)體類型變量在程序運(yùn)行期間
A)TC環(huán)境在內(nèi)存中僅僅開辟一個(gè)存放結(jié)構(gòu)體變量地址的單元
B)所有的成員一直駐留在內(nèi)存中
C)只有最開始的成員駐留在內(nèi)存中
D)部分成員駐留在內(nèi)存中
(49)有下列運(yùn)算符:~,&,<<,>>, |,^,則運(yùn)算的優(yōu)先順序是
A)~,&, |,<<,>>,^
B)~,<<,>>,&, |,^
C)~,<<,>>,^, &,|
D)~,<<,>>,&,^, |
(50)最簡單的交換排序方法是
A)快速排序 B)選擇排序
C)堆排序 D)冒泡排序二、填空題
(1)棧和隊(duì)列通常采用的存儲結(jié)構(gòu)是 【1】 。
【命題目的】考查考生對數(shù)據(jù)結(jié)構(gòu)基本知識的了解。
【解題要點(diǎn)】棧和隊(duì)列都屬于線性表,它們一般采用順序存儲結(jié)構(gòu),也可以對它們采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
【考點(diǎn)鏈接】棧、數(shù)組、表采用的存儲結(jié)構(gòu),各種存儲結(jié)構(gòu)的定義和區(qū)別。
(2)在程序設(shè)計(jì)階段應(yīng)該采取 【2】 和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語言寫成程序。
【命題目的】讓考生對程序設(shè)計(jì)有較深入的了解。
【考點(diǎn)鏈接】系統(tǒng)設(shè)計(jì)其他階段的內(nèi)容。
(3)軟件結(jié)構(gòu)是以 【3】 為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
【命題目的】考查考生對軟件結(jié)構(gòu)的了解。
【解題要點(diǎn)】采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解,模塊化使得軟件容易測試和調(diào)試,因而有利于提高軟件的可靠性,也有利于軟件的組織管理,大型程序可由不同的程序員編寫不同的模塊,并且可以進(jìn)一步分配技術(shù)熟練的程序員編寫困難的部分。
【考點(diǎn)鏈接】軟件結(jié)構(gòu)的定義,模塊操作其他的所有特點(diǎn)。
(4)數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨(dú)立性,數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和 【4】 兩個(gè)含義。
【命題目的】考查考生對數(shù)據(jù)庫基本知識(數(shù)據(jù)獨(dú)立性)的了解。
【解題要點(diǎn)】數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩個(gè)含義。
【考點(diǎn)鏈接】在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨(dú)立性的特點(diǎn)。
(5)數(shù)據(jù)庫保護(hù)分為:安全性控制、 【5】 、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
【命題目的】考查考生對數(shù)據(jù)庫基本知識的了解。
【解題要點(diǎn)】安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯(cuò)誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯(cuò)誤發(fā)生;恢復(fù):當(dāng)數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時(shí),使數(shù)據(jù)庫能恢復(fù)到正確的狀態(tài)。
【考點(diǎn)鏈接】數(shù)據(jù)庫的其他用途,如數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)管理等。
(6)語句printf("%f\n",13.0*(1/5));的輸出結(jié)果為 【6】 。
【命題目的】考查對于基本運(yùn)算符的掌握情況。
【解題要點(diǎn)】/表示整除,1/5為0,0乘以任何數(shù)都得零,但是與浮點(diǎn)型相乘,要轉(zhuǎn)化為浮點(diǎn)型,所以結(jié)果為0.000000。
【考點(diǎn)鏈接】在一個(gè)運(yùn)算符的兩邊如果一個(gè)是字符型,一個(gè)是整型,則把字符型轉(zhuǎn)換為整型之后再進(jìn)行運(yùn)算。
(7)閱讀下面語句,則程序的執(zhí)行結(jié)果是 【7】 。
#include "stdio.h"
main()
{ int a=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
else printf("%d,%d\n",b,a);}
【命題目的】考查對于if語句的掌握情況。
【解題要點(diǎn)】與運(yùn)算兩邊的語句必須同時(shí)為真時(shí),結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。
【考點(diǎn)鏈接】++,--運(yùn)算符。
(8)閱讀下面語句,則執(zhí)行后的輸出結(jié)果為 【8】
#include "stdio.h"
main()
{char a,b;
for(a=′0′,b=′9′;a printf("%c%c",a,b);
printf("\n");}
【命題目的】考查對于for循環(huán)的掌握情況。
【解題要點(diǎn)】for是C語言的關(guān)鍵字,其后的一對圓括號中通常含有三個(gè)表達(dá)式,各個(gè)表達(dá)式之間用分號隔開,這三個(gè)表達(dá)式可以是任意形式的表達(dá)式,通常主要用于for循環(huán)控制。
【考點(diǎn)鏈接】對字符型的運(yùn)算實(shí)際上是對其ASCII碼值的運(yùn)算。
(9)閱讀下面程序,則執(zhí)行后程序的結(jié)果為 【9】
#include "stdio.h"
main()
{ int a=0,b=0;
while(a<15)a++;
while(b++<15);
printf("%d,%d\n",a,b);}
【命題目的】考查對于while循環(huán)的掌握情況。
【解題要點(diǎn)】while是C語言的關(guān)鍵字,while后一對圓括號中的表達(dá)式,可以是C語言中任意合法的表達(dá)式,由它來控制循環(huán)體是否執(zhí)行。
【考點(diǎn)鏈接】在語法上要求循環(huán)體可以是一條簡單可執(zhí)行語句,并且還要注意循環(huán)控制表達(dá)式的判斷條件。
(10)在使用putchar和getchar函數(shù)處理字符時(shí),必須在程序的開頭出現(xiàn)包含頭文件的命令行是 【10】 。
【命題目的】考查對于基礎(chǔ)知識的掌握情況。
【解題要點(diǎn)】使用putchar和getchar函數(shù)時(shí),必須在程序的開頭出現(xiàn)包含頭文件#include "stdio.h"的命令行。
【考點(diǎn)鏈接】putchar的函數(shù)調(diào)用形式為:putchar(字符變量或字符常量);getchar函數(shù)的調(diào)用形式為:變量=getchar();getchar后的一對圓括號內(nèi)沒有參數(shù),但這一對圓括號不可少。
(11)下列程序的輸出結(jié)果是 【11】 , 【12】 。
#include
main()
{ float a=-1.3;b=1.3;
printf("%f,%f",fabs(a),fabs(b);}
【命題目的】主要考查math庫函數(shù)。
【解題要點(diǎn)】本題是求浮點(diǎn)數(shù)的絕對值。
【考點(diǎn)鏈接】常用的math函數(shù)。
(12)設(shè)有以下定義和語句,則*(*(p+2)+1)的值為 【13】 。
int a[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
【命題目的】主要考查對于通過建立行指針來引用二維數(shù)組元素的掌握情況。
【解題要點(diǎn)】*(*(p+2)+1)相當(dāng)于訪問的是a[2][1]的值。
【考點(diǎn)鏈接】*(p[2]+1)、p[2][1]以及(*(p+2))[1]表達(dá)的含義都是a[2][1]的值。
(13)有下列程序,功能是把輸入的十進(jìn)制長整型數(shù)以十六進(jìn)制的形式輸出,完成程序
#include "stdio.h"
main()
{char b[17]={"0123456789ABCDEF"};
int c[50],d,i=0,base=16;
long n;
scanf("%ld",&n);
do{c[i]=nºse;i++;n= 【14】 ;}
while(n!=0);
for(--i;i>=0;--i)
{d= 【15】 ;printf("%c",b[d]);}
printf("H\n");}
【命題目的】考查字符串的實(shí)際運(yùn)用的理解程度。
【解題要點(diǎn)】字符串的綜合運(yùn)用。
【考點(diǎn)鏈接】這是一種常用的十進(jìn)制轉(zhuǎn)換成十六進(jìn)制的方法,應(yīng)該掌握。
(14)現(xiàn)有如下程序段,則程序段的輸出結(jié)果為 【16】 。
#include "stdio.h"
int fun()
{static int k;
return k;}
main()
{int m;
m=fun();
printf("%d\n",m);}
【命題目的】考查對于靜態(tài)存儲類的局部變量的掌握情況。
【解題要點(diǎn)】在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)著永久性的存儲單元。即使退出函數(shù)以后,下次再進(jìn)入函數(shù)時(shí),靜態(tài)局部變量仍使用原來的存儲單元,如未賦初值,則系統(tǒng)會自動賦值為0。
【考點(diǎn)鏈接】C語言中,有兩種存儲類別:一種是自動類;一種是靜態(tài)類。局部變量既可以說明成自動類型;也可以說明成靜態(tài)類型;而全局變量只能是靜態(tài)類型。
(15)現(xiàn)有如下定義:struct aa{int a;float b;char c;}*p;現(xiàn)需用malloc函數(shù)動態(tài)的申請一個(gè)struct aa類型大小的空間(由p指向),則定義的語句為: 【17】 。
【命題目的】考查對于動態(tài)空間申請函數(shù)的掌握情況。
【解題要點(diǎn)】ANSI C標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void *,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsigned int。由于返回類型為void *,所以在調(diào)用函數(shù)時(shí),必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。
【考點(diǎn)鏈接】free函數(shù)的作用是釋放申請的內(nèi)存空間。
(16)有如圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:

{ int data;
【18】 } node;
【命題目的】考查對于結(jié)構(gòu)體對鏈表的定義掌握情況。
【解題要點(diǎn)】結(jié)構(gòu)體對鏈表的定義。
(17)當(dāng)調(diào)函數(shù)frend從磁盤文件中讀取數(shù)據(jù)時(shí),若函數(shù)數(shù)的返回時(shí)為5,則表明 【19】 ;若函數(shù)的返回值為0,則表明 【20】 。【命題目的】考查對于函數(shù)基本操作的掌握情況。
【解題要點(diǎn)】fread函數(shù)的調(diào)用形式為fread(buffer,size,cout,fp);其中buffer是數(shù)據(jù)塊的指針,size表示每個(gè)數(shù)據(jù)塊的字節(jié)數(shù)。count用來指定每讀、寫一次,輸入\輸出數(shù)據(jù)塊的個(gè)數(shù)(每個(gè)數(shù)據(jù)塊有size個(gè)字節(jié))。fp是文件的指針。