2021-2022年山東省菏澤市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁
2021-2022年山東省菏澤市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁
2021-2022年山東省菏澤市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁
2021-2022年山東省菏澤市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁
2021-2022年山東省菏澤市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021-2022年山東省菏澤市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列條件語句中,輸出結(jié)果與其他語句不同的是()。

A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);

C.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

D.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);

2.有以下程序:

程序運(yùn)行后的輸出結(jié)果是().

A.1,3

B.2,3

C.1,4

D.1,2

3.線性表的順序存儲(chǔ)結(jié)構(gòu)是一種()。

A.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)B.順序存取的存儲(chǔ)結(jié)構(gòu)C.索引存取的存儲(chǔ)結(jié)構(gòu)D.Hash存取的存儲(chǔ)結(jié)構(gòu)

4.求2n個(gè)數(shù)中的最大值和最小值,最少的比較次數(shù)是()

A.4n/3B.2n-2C.3n-2D.3n/2

5.若有定義“intx,y;”,并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式“(x-y)?(x++):(y++)”中的條件表達(dá)式“(x-y)”等價(jià)的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

6.排序方法中,將整個(gè)無序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

7.有以下程序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d.",aa[i]);printf("\n");}其輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.9,2,7,4,5,6,3,8,1,10,

D.1,10,3,8,5,6,7,4,9,2,

8.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

9.以下敘述中正確的是()。

A.C語言比其他語言高級(jí)

B.C語言可以不用編譯就被計(jì)算機(jī)識(shí)別并執(zhí)行

C.C語言以接近英語國(guó)家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

D.C語言出現(xiàn)最晚,具有其他語言的一切優(yōu)點(diǎn)

10.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說明書C.用戶手冊(cè)D.軟件需求規(guī)格說明書

11.計(jì)算機(jī)識(shí)別.存儲(chǔ)和加工處理的對(duì)象被統(tǒng)稱為_________

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)結(jié)構(gòu)D.數(shù)據(jù)類型

12.

13.有以下程序:voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];fun1(p)printf("%s\n",A);}程序執(zhí)行后的輸出結(jié)果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

14.下列程序的輸出結(jié)果是()。main{inta,b,d=25;a=d/10%9;b=a&&(一1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0

15.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}

A.1B.2C.7D.10

16.變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是01011101,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是

A.a^bB.a|bC.a&bD.a<<4

17.

18.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}

A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3

19.對(duì)于C語言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

D.函數(shù)的定義和調(diào)用都可以嵌套

20.以下程序運(yùn)行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

A.1B.7C.9D.11

二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(jié)果是______。

voidswap(intx,inty)

{intt;

t=x;x=y;y=t;printf("%d%d",x,y);

}

main()

{inta=3,b=4;

swap(a,b);printf("%d%d\n",a,b);

}

22.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

23.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于【】。

24.以下函數(shù)的功能是計(jì)算s=1+1/2!+1/3!+……+1/n!,請(qǐng)?zhí)羁铡?/p>

doublefun(intn)

{

doubles=0.0,fac=1.0;inti;

for(i=1,i<=n;i++)

{

fac=fac______;

s=s+fac;

}

returns;

}

25.以下程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

printf("\n");}

26.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

27.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

28.軟件設(shè)計(jì)模塊化的目的是______。

29.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

30.若a=1,b=2,c=3,d=4;則條件表達(dá)式a>b?a:c<d?c:d的結(jié)果為()。

31.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。

32.若有定義:inta=10,b=8,c=4;然后順序執(zhí)行下列語句后,變量a中的值是()。c=(b-=(a-4));a=(c%2)+(b-1);

33.數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

34.以下程序段的輸出結(jié)果是【】。

inti=9;

prinff("%o\n",i);

35.執(zhí)行以下程序后,輸出‘#’號(hào)的個(gè)數(shù)是【】。

#include<atdio.h>

main()

{inti,j;

for(i=1;i<5;i++)

for(j=2;j<=i;j++)putchar('#');

}

36.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

37.下列程序的輸出結(jié)果是______。

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

38.寫出下列程序的輸出結(jié)果______。

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

printf("%d",n++);

}

39.以下程序由終端鍵盤輸入一個(gè)文件名,然后把從終端鍵盤輸入的字符依次放到該文

件中,用井作為結(jié)束輸入的標(biāo)志。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

40.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對(duì)象有外部特征,而不知道也無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱為對(duì)象的______。

三、1.選擇題(20題)41.一個(gè)漢字的機(jī)內(nèi)碼在計(jì)算機(jī)內(nèi)部需用2個(gè)字節(jié)存儲(chǔ),每個(gè)字節(jié)的最高位是()

A.0和0B.0和1C.1和0D.1和1

42.以下程序段的輸出結(jié)果是______。intsbr[]={10,8,6,4,2},*p=str+1;printf("%d\n",*(p+2));

A.6B.4C.10D.不確定的值

43.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為______。

A.0B.1C.2D.3

44.若要求從鍵盤讀人含有空格字符的字符串,應(yīng)該使用函數(shù)()。

A.getc()B.gets()C.getchar()D.scanf()

45.下列關(guān)于復(fù)合語句和空語句的說法錯(cuò)誤的是

A.復(fù)合語句是由“{”開頭,由“}”結(jié)尾的

B.復(fù)合語句在語法上視為一條語句

C.復(fù)合語句內(nèi),可以有執(zhí)行語句,不可以有定義語句部分

D.C程序中的所有語句都必須由一個(gè)分號(hào)作為結(jié)束

46.下面說明不正確的是()。

A.chara[10]="china";

B.chara[10],*p=a;p="chiua";

C.char*a;a="china";

D.chara[10],*p;p=a="china";

47.c語言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置()。

A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D.必須在最后

48.信息隱蔽的概念與下述哪一種概念直接相關(guān)?

A.軟件結(jié)構(gòu)定義B.模塊獨(dú)立性C.模塊類型的劃分D.模塊耦合度

49.以下4個(gè)選項(xiàng)中,不能看作一條語句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

50.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)的查詢及增、刪、改等操作的是

A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

51.閱讀下面程序,則執(zhí)行后的結(jié)果為#include"stdio.h"longfun(intn){if(n>2)return(fun(n-1)+fun(n-2));elsereturn(2);}main(){printf("%ld\n",fun(5));}

A.10B.15C.20D.以上3個(gè)答案都不正確

52.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結(jié)束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

53.有以下程序

#include<stdio.h>

intfun(chars[])

{intn=0;

while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}

retum(n);

}

main()

{chars[10]={'6','1','*','4','*','9','*','0','*'};

printf("%d\n",fun(s));

}

程序的運(yùn)行結(jié)果是

A.9B.61490C.61D.5

54.下列哪個(gè)是面向?qū)ο蟪绦蛟O(shè)計(jì)不同于其他語言的主要特點(diǎn)?

A.繼承性B.消息傳遞C.多態(tài)性D.靜態(tài)聯(lián)編

55.若有以下程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a[2]);}上面程序的輸出結(jié)果是()。

A.6B.8C.4D.2

56.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運(yùn)行后的輸出結(jié)果是______。

A.22B.76C.72D.62

57.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

58.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

59.有以下程序

#inGlude<stdlib.h>

structNODE{

intnum;

structNODE*next;

}

main()

{structNODE*p,*q,*r;

intsum=0;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(stnlctNODE*)malloc(sizeof(structNODE));

p->num=1;q->num=2;r->num=3;

p->next=q;q->next;r;r->next=NULL;

sum+=q->next->Num,sum+=p->num;

printf("%d\n",sum);

}

執(zhí)行后輸出結(jié)果是

A.3B.4C.5D.6

60.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=1,b=3;if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,B;elseprintf("%d,%d\n",b,A);}

A.2,2B.1,3C.3,2D.3,1

四、選擇題(20題)61.如下程序的輸出結(jié)果是()。

A.69825B.63825C.6385D.693825

62.若有定義語句:doublea,*P=&a;以下敘述中錯(cuò)誤的是()。

A.定義語句中的*號(hào)是-個(gè)間址運(yùn)算符

B.定義語句中的木號(hào)是-個(gè)說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中,P=&a把變量a的地址作為初值賦給指針變量P

63.有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是()。

64.若有定義intx'y;并已正確給變量賦值。則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x_y)等價(jià)的是()。

A.(x-y011x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y=o)

65.語句“printf("akbre"\'hi\'y\\\bou\n")”;的輸出結(jié)果是()。

A.akbre\'hi\'y'\\\bou

B.a\bre\'hi\\y\bou

C.re'hi'you

D.abre'hi'y\bou

66.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+1,x=y,x+1)

67.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.22B.76C.72D.62

68.有以下程序:

程序執(zhí)行后的輸出結(jié)果是()。

A.55.B.50C.45D.60

69.

70.下列敘述中正確的是()。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)

71.下列敘述中正確的是()。

A.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)

B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率

72.若有定義語句:

則strlen(s)的值是()。

A.7B.8C.9D.10

73.以下敘述中錯(cuò)誤的是()。

A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.C語言是-種結(jié)構(gòu)化程序設(shè)計(jì)語言

D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

74.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

75.不能把字符串:Hello!賦給數(shù)組b的語句是()。

A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};

B.charb[10];b="Hello!";

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

76.以下敘述中正確的是()。A.A.當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)

D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

77.某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。

A.3B.4C.6D.7

78.若有定義語句:doublea,*p=&a;,以下敘述中錯(cuò)誤的是()。

A.定義語句中的*號(hào)是一個(gè)間址運(yùn)算符

B.定義語句中的*號(hào)只是一個(gè)說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中,*p=&n把變量a的地址作為初值賦給指針變量P

79.設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

80.

以下程序的輸出結(jié)果是()。

unionmyun

{struct

{intx,y,z;)u;

intk:

}a;

main

{a.u.x=4;a.u.y=5;a.u.z=6;

k=0;

printf(%d\n",a.u.x);

}

A.4B.5C.6D.0

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將長(zhǎng)整型數(shù)中為偶數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為8642。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,函數(shù)fmi()的功能是將a、b中的兩個(gè)正整數(shù)合并成一個(gè)新的整數(shù)存放在c中。合并的方式是將a中的十位和個(gè)位數(shù)依次放在變量c的十位和千位上,b中的十位和個(gè)位數(shù)依次放在變量c的個(gè)位和百位上。例如,a=45,b=12,調(diào)用該函數(shù)后,c=5241。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:

參考答案

1.CA、B、D選項(xiàng)的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項(xiàng)的含義是:a的值為0時(shí)輸出x的值,不為0時(shí)輸出y的值,與其他選項(xiàng)正好相反。故本題答案為C選項(xiàng)。

2.Af函數(shù)功能使第二個(gè)指針指向的元素增1,第一個(gè)指針指向的元素不變,所以答案選擇A)。

3.A

4.A

5.A條件表達(dá)式“x=表達(dá)式1?表達(dá)式2:表達(dá)式3”的含義是:先求解表達(dá)式1,若其值不為0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x;若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給X。本題中與條件表達(dá)式“(x-y)”等價(jià)的是“(x-y<0||lx-y>0)”。故本題答案為A選項(xiàng)。

6.A解析:希爾排序法的基本思想是:將整個(gè)無序序列分割成若干小的子序列分別進(jìn)行插入排序。

7.C解析:sort函數(shù)的功能實(shí)際上是對(duì)數(shù)組中奇數(shù)位置上的數(shù)進(jìn)行從大到小排序。排序后的結(jié)果應(yīng)該為9,2,7,4,5,6,3,8,1,10。

8.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向?yàn)橛捎蚁蜃?,即將:右?cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計(jì)算再賦值。選項(xiàng)A中運(yùn)算符%的運(yùn)算對(duì)象必須為整數(shù),而選項(xiàng)A中26.8不為整數(shù),故選項(xiàng)A不正確;選項(xiàng)B將一個(gè)變量賦值給一個(gè)常量,這在C語言中是不允許的,故選項(xiàng)B不正確;選項(xiàng)D中也是將一個(gè)常量3賦值給一個(gè)常量,故選項(xiàng)D不正確;所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

9.C解析:計(jì)算機(jī)語言分為低級(jí)語言和高級(jí)語言,C語言屬于高級(jí)語言,但并非比其他語言高級(jí),選項(xiàng)A)錯(cuò)誤;除了機(jī)器語言外,其他各種語言都必須編譯成能被計(jì)算機(jī)識(shí)別的機(jī)器代碼才能執(zhí)行,選項(xiàng)B)錯(cuò)誤;C語言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語言,選項(xiàng)D)錯(cuò)誤。

10.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評(píng)審四個(gè)方面。所以選擇D。

11.A

12.C

13.A解析:在函數(shù)fun1()中,首先將形參p的內(nèi)容存入臨時(shí)指針q中,然后使用—個(gè)while循環(huán),當(dāng)q所指內(nèi)容不是字符串結(jié)束標(biāo)志'\\0\'時(shí),讓q所指內(nèi)容增1,然后將指針q增1指向下一個(gè)位置。所以函數(shù)fun1()實(shí)現(xiàn)的功能是:將傳入字符串的所有字符自增1。主函數(shù),指針p在被傳入fun1()函數(shù)之前,初始化指向的是寧符數(shù)組a的第4個(gè)元素\'g\',所以最終輸出的結(jié)果應(yīng)該是Prohsbn。故應(yīng)該選擇A。

14.B當(dāng)邏輯運(yùn)算符“&&”兩邊的值是非零時(shí),邏輯表達(dá)式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

15.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個(gè)局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。

16.A解析:本題考查的是位運(yùn)算的知識(shí),對(duì)于任何二進(jìn)制數(shù),和1進(jìn)行異或運(yùn)算會(huì)讓其取反,而和0進(jìn)行異或運(yùn)算不會(huì)產(chǎn)生任何變化。

17.A

18.D

19.A

20.C

21.4334

22.33解析:條件表達(dá)式的一般形式為;表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值;若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。

23.一對(duì)多一對(duì)多解析:由于一個(gè)項(xiàng)目主管可以管理多個(gè)項(xiàng)目,而一個(gè)項(xiàng)目只能有一個(gè)項(xiàng)目主管,“項(xiàng)目主管”這個(gè)實(shí)體與“項(xiàng)目”這個(gè)實(shí)體的管理關(guān)系屬于一對(duì)多。

24./i或*1.0/i或*1/i或*(1.0/i)或/(double)i/i或*1.0/i或*1/i或*(1.0/i)或/(double)i解析:主函數(shù)中首先定義了兩個(gè)double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i。可見橫線處應(yīng)添“/i”或與它等價(jià)的表達(dá)式。

25.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點(diǎn)。

26.

27.完善性軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對(duì)軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

28.降低復(fù)雜性降低復(fù)雜性

29.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

30.3

31.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。

32.22解析:本題考查的是基本賦值運(yùn)算符和賦值表達(dá)式。表達(dá)式c=(b-=a-4)等價(jià)于c=(b=b-a+4)等價(jià)于c=b=2;表達(dá)式a(c%2+(b-1))等價(jià)于a=1+2-1=2;因此最后a的值為2。

33.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

34.1111解析:格式字符。是以八進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0),因?yàn)檎麛?shù)9的八進(jìn)制為11,所以輸出結(jié)果為11。

35.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時(shí),由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#;當(dāng)i=3時(shí),內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#;當(dāng)i=4時(shí),內(nèi)層循環(huán)循環(huán)三次,輸出三個(gè)#;當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個(gè)#。

36.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

37.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。

38.333,3解析:本題在while(n++<=1)語句后,直接加了分號(hào),說明如果while()的條件為真時(shí),該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時(shí),循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時(shí),循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時(shí),循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時(shí)仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個(gè)printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。

39.fopen(fname:"w")

40.對(duì)象具有5個(gè)基本特點(diǎn):①標(biāo)識(shí)唯一性;②分類性;③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對(duì)象的外部特征,對(duì)象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見的,對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。\r\n\r\n

41.D

42.B解析:指針變量操作。

43.A解析:C語言中比較表達(dá)式的運(yùn)算結(jié)果為0或1。0代表不成立,1表示成立。

44.B解析:gete()函數(shù)是從文件指針指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回;getchar()函數(shù)是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符,getc()和getehar()都不能讀字符串(可以與循環(huán)語句結(jié)合輸入一個(gè)字符串);seanf()函數(shù)不能輸入帶空格的字符串;gets()函數(shù)可以從鍵盤讀入空格字符。

45.C解析:復(fù)合語句內(nèi),不僅可以有執(zhí)行語句,而且還可以有定義語句部分。定義語句應(yīng)該出現(xiàn)在可執(zhí)行語句前面。

46.D解析:C語言中操作一個(gè)字符串常量的方法有:

①把字符串常量存放在一個(gè)字符數(shù)組之中。

②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲(chǔ)區(qū)域。

當(dāng)字符串常量在表達(dá)式中出現(xiàn)時(shí),根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,它被轉(zhuǎn)換成字符指針。

本題選項(xiàng)D)錯(cuò)誤的關(guān)鍵是對(duì)數(shù)組初始化時(shí),可以在變量定義時(shí)整體賦初值,但不能在賦值語句中整體賦值。

47.C解析:不論main函數(shù)在整個(gè)過程中的位置如何,一個(gè)C程序總是從main函數(shù)開始執(zhí)行的。

48.B解析:采用信息隱蔽的目的就是為了確保每個(gè)模塊的獨(dú)立性。

49.D解析:選項(xiàng)D)為兩條語句。

50.C【解析】在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)操縱語言負(fù)責(zé)數(shù)據(jù)的查詢及增、刪、改等操作。故答案為C。

51.A解析:這是使用遞歸算法求著名的菲波拉奇數(shù)列,并要熟悉函數(shù)的遞歸方法的調(diào)用。

52.D解析:本題考查的知識(shí)點(diǎn)是do-while循環(huán)結(jié)構(gòu)循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點(diǎn):

先執(zhí)行語句,后判斷表達(dá)式。所以,無論一開始表達(dá)式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點(diǎn)與while不同,

如果do-while語句循環(huán)體部分是由多個(gè)語句組成,則必須用花括號(hào)括起來,使其形成復(fù)合語句。

C語言中的do—while語句是在表達(dá)式“真”時(shí)重復(fù)執(zhí)行循環(huán)體。

在本題中,循環(huán)執(zhí)行判斷條件為while后面括號(hào)里的表達(dá)式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結(jié)束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項(xiàng)A的意思是:p的值不等于12345并且n的小于3和while后面括號(hào)里的表達(dá)式等價(jià)是循環(huán)執(zhí)行的條件而不是循環(huán)結(jié)束的條件,所以選項(xiàng)A不正確;選項(xiàng)B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結(jié)束的條件一個(gè)子集,所以選項(xiàng)B不正確;選項(xiàng)C的意思是:p的值不等于12345或者n的值小于3前一半是結(jié)束條件的子集,后一部分不是結(jié)束條件,所以選項(xiàng)C不正確;選項(xiàng)D描述的意思是:p的值等于12345或者你的大于等于3是結(jié)束條件的子集,所以選項(xiàng)D滿足題意。所以4個(gè)選項(xiàng)中D正確。

53.C解析:在fin函數(shù)中,while循環(huán)的功能是:逐個(gè)取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將其作為個(gè)位數(shù)字保存到變量n中,n的原數(shù)據(jù)的各個(gè)數(shù)位將相應(yīng)左移一個(gè)十進(jìn)制位。當(dāng)指針s指向數(shù)組的第3位時(shí),循環(huán)條件不成立,循環(huán)結(jié)束,返回n的值,輸出n的值為61。

54.A解析:繼承是一個(gè)子類直接使用父類的所有屬性和方法。它可以減少相似的類的重復(fù)說明,從而體現(xiàn)出一般性與特殊性的原則,這使得面向?qū)ο蟪绦蛟O(shè)計(jì)語言有了良好的重用性,也是其不同于其他語言的主要特點(diǎn)。故答案為A。

55.D解析:在C語言中,數(shù)組元素下標(biāo)是從0開始的;指針變量p指向數(shù)組的首地址。for循環(huán)語句中,指針變量p始終指向數(shù)組的首地址,因而執(zhí)行循環(huán)賦值語句后數(shù)組各元素的值均變?yōu)?。

56.C題目中需要求出程序的輸出值i,j,其中i的值由sizeof決定,j的值由strlen函數(shù)決定。

sizeof是C語言的一種運(yùn)算符,以字節(jié)的形式給出操作數(shù)的存儲(chǔ)空間的大小。sizeof的操作對(duì)象可以是具體的數(shù)據(jù)類型,也可以是變量。題目中的操作數(shù)為數(shù)組名,利用sizeof可計(jì)算出數(shù)組所占用內(nèi)存的字節(jié)數(shù),題目中數(shù)組類型為char,大小為7,故該數(shù)組占用的內(nèi)存數(shù)為7。

strlen函數(shù)則是計(jì)算一段字符串的長(zhǎng)度,可以從整個(gè)字符串的頭部開始計(jì)算,也可以從字符串的中間開始計(jì)算,當(dāng)碰到第一個(gè)字符串結(jié)束符“\\0”,則停止計(jì)算,返回當(dāng)前的計(jì)算值。題目中在前兩個(gè)字符之后就出現(xiàn)了結(jié)束符“\\0”,故strlen函數(shù)的值為2。

57.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實(shí)體本身及其相互之間的聯(lián)系。本題的正確答案是D。

58.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長(zhǎng)度,而C語言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長(zhǎng)度才可以省略,數(shù)組的長(zhǎng)度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語言中規(guī)定,數(shù)組的長(zhǎng)度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長(zhǎng)度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

59.B解析:本題中定義了一個(gè)結(jié)點(diǎn)structNODE,在主函數(shù)中定義了三個(gè)結(jié)點(diǎn)變量指針p、q和r,接著通過malloc函數(shù)分配了三個(gè)結(jié)點(diǎn)并讓p、q和r分別指向他們,再接著給p、q和r所指向的結(jié)點(diǎn)的num域賦值為1、2、3,然后讓結(jié)點(diǎn)p指向q,讓q指向r,r指向NULL。顯然q->next->num的值為指針r所指向結(jié)點(diǎn)的num域的值為3,p->hum的值為指針P所指向結(jié)點(diǎn)的num域的值為1,故最后輸出s的值為3+1=4。

60.C

61.C考查通過指針引用字符串?dāng)?shù)組中的元素。通過行指針P來實(shí)現(xiàn)數(shù)組元素的引用。用格式說明符%s進(jìn)行整串輸入與輸出。

本題中,每行字符指針跳躍式右移動(dòng),隔2個(gè)移動(dòng)一次,s存放處理的累計(jì)和。

第一行中

s指針行下標(biāo)變化,轉(zhuǎn)向第二行

第二行中

得出結(jié)果S=6385

62.A在變量定義doublea,*P:&a;中,}號(hào)是一個(gè)指針運(yùn)算符,而非間址運(yùn)算符,所以A錯(cuò)誤。

63.AA)選項(xiàng):再能將一個(gè)字符串賦值給一個(gè)字符變量,所以選擇A)。

64.A條件表達(dá)式:X----表達(dá)式l?表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1,若其值為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x,若表達(dá)式1的值為o(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。在本題中與表達(dá)式(x_y)等價(jià)的是(x—y<011x—y>0),A選項(xiàng)正確。

65.C先輸出a、b表示退一格,當(dāng)執(zhí)行到:\b后,光標(biāo)往后退,接著輸出re'hi'y\(反斜杠后又加一個(gè)反斜杠的意思是要輸出一個(gè)反斜杠),此時(shí)又執(zhí)行:\b后,\就被ou覆蓋。

66.C逗號(hào)表達(dá)式,其值為最后一個(gè)表達(dá)式的值。如A,值為x+1,x=6,所以結(jié)果為7,而C,x+y,x=6,y=6,x+y=12.

67.C字符數(shù)組的元素?cái)?shù)量在定義時(shí)已經(jīng)確定,與其存儲(chǔ)的內(nèi)容無關(guān),本題中語句chara[7]定義了由7個(gè)字符元素組成的字符數(shù)組,其sizeof(a)=7。字符數(shù)組常常存儲(chǔ)字符串,但其存儲(chǔ)的字符串長(zhǎng)度與數(shù)組長(zhǎng)度沒有直接關(guān)聯(lián)。c語言規(guī)定,字符串從首字符開始,以第一個(gè)值為ASCIl碼0的字符結(jié)尾,其中的非0字符數(shù)量就是字符串的長(zhǎng)度。在本題

68.D內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。m(a,5)的值是15,再次調(diào)用后Ⅲm=15,所以fun(b,4)=45,s=45+15=60。因此D選項(xiàng)正確。

69.B

70.B解析:本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識(shí)和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都影響算法的效率。選項(xiàng)A的說法是錯(cuò)誤的。算法的時(shí)間復(fù)雜度是指

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論