為大家收集整理了《2007年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試試題及答案》供大家參考,希望對(duì)大家有所幫助?。。?BR> 一、選擇題((1)—(10)每小題2分,(11)—(50)每題1分,共60分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列敘述中正確的是(B)
A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)
B)算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)
(2)在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是(D)
A)各模塊應(yīng)包括盡量多的功能
B)各模塊的規(guī)模應(yīng)盡量大
C)各模塊之間的聯(lián)系應(yīng)盡量緊密
D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度
(3)下列敘述中正確的是(A)
A)軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤
B)軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置
C)為了提高軟件測(cè)試的效率,由程序編制者自己來完成軟件測(cè)試的工作
D)軟件測(cè)試是證明軟件沒有錯(cuò)誤
(4)下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是(C)
A)繼承性
B)多態(tài)性
C)類比性
D)封裝性
(5)下列對(duì)隊(duì)列的敘述正確的是(D)
A)隊(duì)列屬于非線性表
B)隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)
C)隊(duì)列在隊(duì)尾刪除數(shù)據(jù)
D)隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)
(6)對(duì)下列二叉樹
A
B C
D E F X
Y Z
進(jìn)行前序遍歷的結(jié)果為(C)
A) DYBEAFCZX
B) YDEBFZXCA
C) ABDYECFXZ
D) ABCDEFXYZ
(7) 某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為(A)
A) n+1
B) n-1
C) 2n
D) n/2
(8) 在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是(B)
A) 并
B)交
C)投影
D)笛卡兒乘積
(9)在E-R圖中,用來表示實(shí)體之間聯(lián)系的圖形是(C)
A) 矩形
B)橢圓形
C)菱形
D)平行四邊形
(10)下列敘述中錯(cuò)誤的是(A)
A) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
B) 數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C) 數(shù)據(jù)庫設(shè)計(jì)是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
(11)算法中,對(duì)需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的(C)
A)正當(dāng)性
B)可行性
C)確定性
D)有窮性
(12)下列敘述中錯(cuò)誤的是(D)
A)計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序
B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件
D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
(13)按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是(B)
A)大寫字母
B)連接符
C)數(shù)字字符
D)下劃線
(14)以下敘述中錯(cuò)誤的是(C)
A)C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言
B)結(jié)構(gòu)化程序有順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問題
D)結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
(15)對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是(A)
A)程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
C)程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
D)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
(16)設(shè)變量均已正確定義,若要通過scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值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)若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是(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)設(shè)有定義:int k=0;,以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是(A)
A)k++
B)k+=1
C)++k
D)k+1
(19)有以下程序,其中%u表示按無符號(hào)整數(shù)輸出(B)
main()
{unsigned int x=0xFFFF; /* x的初值為十六進(jìn)制數(shù) */
printf(“%u\n”,x);
}
程序運(yùn)行后的輸出結(jié)果是
A)-1
B)65535
C)32767
D)0xFFFF
(20)設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是(C)
A)if(x++);
B)if(x>y&&y!=0);
C)if(x>y) x- -
D)if(y<0) {;}
else y++; else x++;
(21)以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式(D)
A)x%2==1
B)x/2
C)x%2!=0
D)x%2==0
(22)以下敘述中正確的是(C)
A)break語句只能用于switch語句體中
B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C)break 語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
D)在循環(huán)體內(nèi)使用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);
}
程序運(yùn)行后的輸出結(jié)果是
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”);
}
}
程序運(yùn)行后的輸出結(jié)果是(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語言中,函數(shù)返回值的類型最終取決于(A)
A)函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型
B)return語句中表達(dá)式值的類型
C)調(diào)用函數(shù)時(shí)主函數(shù)所傳遞的實(shí)參類型
D)函數(shù)定義時(shí)形參的類型
(27)已知大寫字母A的ASCII碼是65,小寫字母aASCII碼是97,以下不能將變量c中大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語句是(D)
A)c=(c-A)&+’a’
B)c=c+32
C)c=c-‘A’+’a’
D)c=(‘A’+c)&-‘a(chǎn)’
(28)有以下函數(shù)
int fun(char *s)
{char *t=s;
while(*t++);
return(t-s);
}
該函數(shù)的功能是(B)
A)比較兩個(gè)字符的大小
B)計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
C)計(jì)算s所指字符串的長度
D)將s所指字符串復(fù)制到字符串t中
(29)設(shè)已有定義:float x;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是(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讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是(A)
A)int n,*p=NULL;
B)*p=&n;
C)scanf(“%d”,&p)
D)printf(“%d\n”,p);
(31)以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行有由小到大排序;當(dāng)flag為0時(shí),進(jìn)行由大到小排序。
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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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是結(jié)構(gòu)變量名 */
{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);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”;
strcpy(p+strlen(q),r); strcat(p,q);
printf(“%d%d\n”,sizeof(p),strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是(C)
A)20 9
B)9 9
C)20 11
D)11 11
(38) 有以下程序
#include
main()
{char p[20]={‘a(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”
strcat(p,r); Strcpy(p+strlen(q),q);
Printf(“%d \n”,sizeof(p));
}
程序運(yùn)行后的輸出結(jié)果是(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]));
}
程序運(yùn)行后的輸出結(jié)果是(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”);
}
程序運(yùn)行后的輸出結(jié)果是(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);
}
編譯連接后生成可執(zhí)行文件tt.exe,若運(yùn)行時(shí)輸入以下命令行
tt 12 345 678
程序運(yùn)行后的輸出結(jié)果是(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);
}
程序運(yùn)行后的輸出結(jié)果是(B)
A)24
B)28
C)32
D)36
(43) 有一個(gè)名為init.txt的文件,內(nèi)容如下:
#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);
}
下面針對(duì)該程序的敘述正確的是(D)
A)編譯有錯(cuò)
B)運(yùn)行出錯(cuò)
C)運(yùn)行結(jié)果為 y=0
D) 運(yùn)行結(jié)果為 y=6
(44) 有以下程序
main()
{char ch[]=“uvwxyz”,*pc;
Pc=ch; printf(“%c\n”,*(pc+5));
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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結(jié)構(gòu)變量的指針的指針
B)NODE p;語句出錯(cuò)
C)p是指向struct node結(jié)構(gòu)變量的指針
D)p是struct node結(jié)構(gòu)變量
(48)有以下程序
main()
{unsigned char a=2,b=4,c=5,d;
d=a|b; d&=c; printf(“%d\n”,d); }
程序運(yùn)行后的輸出結(jié)果是(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);
}
程序運(yùn)行后的輸出結(jié)果是(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);/*該語句使讀文件的位置指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù)*/
fread(a,sizeof(int),3,fp); fclose(fp);
for(i=0;i<6;i++) printf(“%d,”,a[i]);
}
程序運(yùn)行后的輸出結(jié)果是(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分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]至[20]序號(hào)的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須寫完整.
(1) 在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為___63____。
(2) 軟件測(cè)試分為白箱(盒)測(cè)試和黑箱(盒)測(cè)試,等價(jià)類劃分法屬于__黑箱(或黑盒) 測(cè)試。
(3) 在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 __數(shù)據(jù)庫管理系統(tǒng)__。
(4) 軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于 開發(fā)_____階段。
(5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用數(shù)據(jù)字典 對(duì)其中的圖形元素進(jìn)行確切解釋。
二.填空題(每空2分,共40分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]至[20]序號(hào)的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須寫完整.
(1) 在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為___63____。
(2) 軟件測(cè)試分為白箱(盒)測(cè)試和黑箱(盒)測(cè)試,等價(jià)類劃分法屬于__黑箱(或黑盒) 測(cè)試。
(3) 在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 __數(shù)據(jù)庫管理系統(tǒng)__。
(4) 軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于 開發(fā)_____階段。
(5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用數(shù)據(jù)字典 對(duì)其中的圖形元素進(jìn)行確切解釋。
(11)已定義char ch=”$”;int i=1,j;執(zhí)行j=!ch&&i++以后,i的值為1
(12)以下程序的輸出結(jié)果是 5 4
# include
main()
{ char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};
printf(“%d %d\n”,sizeof(a),srelen(a));
}
(13)設(shè)有定義語句:int a[][3]={{0},{1},{2}};,則數(shù)組元素a[1][2]的值為 0
(14)以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?BR> 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) 以下程序的功能是:利用指針指向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中的值,輸出到屏幕上,請(qǐng)?zhí)羁眨?BR> 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)以下程序的輸出結(jié)果是 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)以下程序的輸出結(jié)果是 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)設(shè)有說明
struct DATE{int year;int month; int day;};
請(qǐng)寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體變量,并同時(shí)為其成員year、month、day 依次賦初值2006、10、1: struct DATA d={2006,10,1};
(19) 設(shè)有定義:FILE *fw;,請(qǐng)將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。
fw=fopen(“readme.txt”, "a" )
一、選擇題:
1-5 24134
6-10 31321
11-15 34231
16-20 43113
21-25 43421
26-30 14241
31-35 22412
36-40 23232
41-45 42411
46-50 13241
二、填空題:
1. 63
2,墨盒
3.DBNS
4,開發(fā)
5,數(shù)據(jù) 字典
6,a-14
7,0
8,無答案
9,# 與號(hào)
10,9
11,1
12,5_4
13,13 0
14,i=1
15,X[i-1]
16,無答案
17,10
18,40
19,無答案
20,"20a"
(1)下列敘述中正確的是(B)
A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)
B)算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)
(2)在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是(D)
A)各模塊應(yīng)包括盡量多的功能
B)各模塊的規(guī)模應(yīng)盡量大
C)各模塊之間的聯(lián)系應(yīng)盡量緊密
D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度
(3)下列敘述中正確的是(A)
A)軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤
B)軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置
C)為了提高軟件測(cè)試的效率,由程序編制者自己來完成軟件測(cè)試的工作
D)軟件測(cè)試是證明軟件沒有錯(cuò)誤
(4)下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是(C)
A)繼承性
B)多態(tài)性
C)類比性
D)封裝性
(5)下列對(duì)隊(duì)列的敘述正確的是(D)
A)隊(duì)列屬于非線性表
B)隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)
C)隊(duì)列在隊(duì)尾刪除數(shù)據(jù)
D)隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)
(6)對(duì)下列二叉樹
A
B C
D E F X
Y Z
進(jìn)行前序遍歷的結(jié)果為(C)
A) DYBEAFCZX
B) YDEBFZXCA
C) ABDYECFXZ
D) ABCDEFXYZ
(7) 某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為(A)
A) n+1
B) n-1
C) 2n
D) n/2
(8) 在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是(B)
A) 并
B)交
C)投影
D)笛卡兒乘積
(9)在E-R圖中,用來表示實(shí)體之間聯(lián)系的圖形是(C)
A) 矩形
B)橢圓形
C)菱形
D)平行四邊形
(10)下列敘述中錯(cuò)誤的是(A)
A) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
B) 數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C) 數(shù)據(jù)庫設(shè)計(jì)是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
(11)算法中,對(duì)需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的(C)
A)正當(dāng)性
B)可行性
C)確定性
D)有窮性
(12)下列敘述中錯(cuò)誤的是(D)
A)計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序
B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件
D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
(13)按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是(B)
A)大寫字母
B)連接符
C)數(shù)字字符
D)下劃線
(14)以下敘述中錯(cuò)誤的是(C)
A)C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言
B)結(jié)構(gòu)化程序有順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問題
D)結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
(15)對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是(A)
A)程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
C)程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
D)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
(16)設(shè)變量均已正確定義,若要通過scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值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)若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是(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)設(shè)有定義:int k=0;,以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是(A)
A)k++
B)k+=1
C)++k
D)k+1
(19)有以下程序,其中%u表示按無符號(hào)整數(shù)輸出(B)
main()
{unsigned int x=0xFFFF; /* x的初值為十六進(jìn)制數(shù) */
printf(“%u\n”,x);
}
程序運(yùn)行后的輸出結(jié)果是
A)-1
B)65535
C)32767
D)0xFFFF
(20)設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是(C)
A)if(x++);
B)if(x>y&&y!=0);
C)if(x>y) x- -
D)if(y<0) {;}
else y++; else x++;
(21)以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式(D)
A)x%2==1
B)x/2
C)x%2!=0
D)x%2==0
(22)以下敘述中正確的是(C)
A)break語句只能用于switch語句體中
B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C)break 語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
D)在循環(huán)體內(nèi)使用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);
}
程序運(yùn)行后的輸出結(jié)果是
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”);
}
}
程序運(yùn)行后的輸出結(jié)果是(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語言中,函數(shù)返回值的類型最終取決于(A)
A)函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型
B)return語句中表達(dá)式值的類型
C)調(diào)用函數(shù)時(shí)主函數(shù)所傳遞的實(shí)參類型
D)函數(shù)定義時(shí)形參的類型
(27)已知大寫字母A的ASCII碼是65,小寫字母aASCII碼是97,以下不能將變量c中大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語句是(D)
A)c=(c-A)&+’a’
B)c=c+32
C)c=c-‘A’+’a’
D)c=(‘A’+c)&-‘a(chǎn)’
(28)有以下函數(shù)
int fun(char *s)
{char *t=s;
while(*t++);
return(t-s);
}
該函數(shù)的功能是(B)
A)比較兩個(gè)字符的大小
B)計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
C)計(jì)算s所指字符串的長度
D)將s所指字符串復(fù)制到字符串t中
(29)設(shè)已有定義:float x;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是(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讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是(A)
A)int n,*p=NULL;
B)*p=&n;
C)scanf(“%d”,&p)
D)printf(“%d\n”,p);
(31)以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行有由小到大排序;當(dāng)flag為0時(shí),進(jìn)行由大到小排序。
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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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是結(jié)構(gòu)變量名 */
{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);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”;
strcpy(p+strlen(q),r); strcat(p,q);
printf(“%d%d\n”,sizeof(p),strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是(C)
A)20 9
B)9 9
C)20 11
D)11 11
(38) 有以下程序
#include
main()
{char p[20]={‘a(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”
strcat(p,r); Strcpy(p+strlen(q),q);
Printf(“%d \n”,sizeof(p));
}
程序運(yùn)行后的輸出結(jié)果是(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]));
}
程序運(yùn)行后的輸出結(jié)果是(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”);
}
程序運(yùn)行后的輸出結(jié)果是(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);
}
編譯連接后生成可執(zhí)行文件tt.exe,若運(yùn)行時(shí)輸入以下命令行
tt 12 345 678
程序運(yùn)行后的輸出結(jié)果是(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);
}
程序運(yùn)行后的輸出結(jié)果是(B)
A)24
B)28
C)32
D)36
(43) 有一個(gè)名為init.txt的文件,內(nèi)容如下:
#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);
}
下面針對(duì)該程序的敘述正確的是(D)
A)編譯有錯(cuò)
B)運(yùn)行出錯(cuò)
C)運(yùn)行結(jié)果為 y=0
D) 運(yùn)行結(jié)果為 y=6
(44) 有以下程序
main()
{char ch[]=“uvwxyz”,*pc;
Pc=ch; printf(“%c\n”,*(pc+5));
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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]);
}
程序運(yùn)行后的輸出結(jié)果是(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結(jié)構(gòu)變量的指針的指針
B)NODE p;語句出錯(cuò)
C)p是指向struct node結(jié)構(gòu)變量的指針
D)p是struct node結(jié)構(gòu)變量
(48)有以下程序
main()
{unsigned char a=2,b=4,c=5,d;
d=a|b; d&=c; printf(“%d\n”,d); }
程序運(yùn)行后的輸出結(jié)果是(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);
}
程序運(yùn)行后的輸出結(jié)果是(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);/*該語句使讀文件的位置指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù)*/
fread(a,sizeof(int),3,fp); fclose(fp);
for(i=0;i<6;i++) printf(“%d,”,a[i]);
}
程序運(yùn)行后的輸出結(jié)果是(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分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]至[20]序號(hào)的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須寫完整.
(1) 在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為___63____。
(2) 軟件測(cè)試分為白箱(盒)測(cè)試和黑箱(盒)測(cè)試,等價(jià)類劃分法屬于__黑箱(或黑盒) 測(cè)試。
(3) 在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 __數(shù)據(jù)庫管理系統(tǒng)__。
(4) 軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于 開發(fā)_____階段。
(5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用數(shù)據(jù)字典 對(duì)其中的圖形元素進(jìn)行確切解釋。
二.填空題(每空2分,共40分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]至[20]序號(hào)的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須寫完整.
(1) 在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為___63____。
(2) 軟件測(cè)試分為白箱(盒)測(cè)試和黑箱(盒)測(cè)試,等價(jià)類劃分法屬于__黑箱(或黑盒) 測(cè)試。
(3) 在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 __數(shù)據(jù)庫管理系統(tǒng)__。
(4) 軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于 開發(fā)_____階段。
(5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用數(shù)據(jù)字典 對(duì)其中的圖形元素進(jìn)行確切解釋。
(11)已定義char ch=”$”;int i=1,j;執(zhí)行j=!ch&&i++以后,i的值為1
(12)以下程序的輸出結(jié)果是 5 4
# include
main()
{ char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};
printf(“%d %d\n”,sizeof(a),srelen(a));
}
(13)設(shè)有定義語句:int a[][3]={{0},{1},{2}};,則數(shù)組元素a[1][2]的值為 0
(14)以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?BR> 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) 以下程序的功能是:利用指針指向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中的值,輸出到屏幕上,請(qǐng)?zhí)羁眨?BR> 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)以下程序的輸出結(jié)果是 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)以下程序的輸出結(jié)果是 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)設(shè)有說明
struct DATE{int year;int month; int day;};
請(qǐng)寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體變量,并同時(shí)為其成員year、month、day 依次賦初值2006、10、1: struct DATA d={2006,10,1};
(19) 設(shè)有定義:FILE *fw;,請(qǐng)將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。
fw=fopen(“readme.txt”, "a" )
一、選擇題:
1-5 24134
6-10 31321
11-15 34231
16-20 43113
21-25 43421
26-30 14241
31-35 22412
36-40 23232
41-45 42411
46-50 13241
二、填空題:
1. 63
2,墨盒
3.DBNS
4,開發(fā)
5,數(shù)據(jù) 字典
6,a-14
7,0
8,無答案
9,# 與號(hào)
10,9
11,1
12,5_4
13,13 0
14,i=1
15,X[i-1]
16,無答案
17,10
18,40
19,無答案
20,"20a"