




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年安徽省安慶市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.在有序表(12,24,36,48,60,72,84)中二分查找關(guān)鍵字72時所需進行的關(guān)鍵字比較次數(shù)是()
A.1B.2C.3D.4
2.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序運行后的輸出結(jié)果是()。A.3B.8C.4D.9
3.
4.具有10個葉子結(jié)點的二叉樹中有()個度為2的結(jié)點。
A.8B.9C.10D.11
5.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項中錯誤的是
A.x++;B.y++;C.c++;D.D++;
6.在一個有頭結(jié)點的鏈隊列中,假設(shè)f和r分別為隊首和隊尾指針,則隊頭出隊的運算是()。
A.q=f->next;f->next=f->next->next;free(q);
B.q=f;f->next=f->next->next;free(q);
C.f->next=f->next->next;q=f->next;free(q);
D.q=f->next->next;f=f->next;free(q);
7.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
8.堆的形狀是一棵_______。
A.二叉排序樹B.滿二叉樹C.完全二叉樹D.平衡二叉樹
9.下列程序的運行結(jié)果是()。
#include<stdio.h>
main()
{intx=5,a=1,b=2,C=5,d=0;
if(a<B)
if(b!=3)
if(!C)
x=1;
else
if(D)x=1;
elsex=-1;
printf("%d",x);
}
A.-1B.0C.1D.不確定的值
10.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無聯(lián)系的數(shù)據(jù)
11.以下敘述中正確的是()。
A.C語言比其他語言高級
B.C語言可以不用編譯就被計算機識別并執(zhí)行
C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達形式
D.C語言出現(xiàn)最晚,具有其他語言的一切優(yōu)點
12.有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運行后的輸出結(jié)果是()。
A.24B.28C.32D.36
13.一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為()。
A.對應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
14.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是()。
A.fget(f0,ch);
B.foutc(ch,fo);
C.fprinff(fp,”%c”,ch);
D.fwrite(&ch,sizeof(ch),1,fp);
15.以下敘述中錯誤的是()。A.C程序在運行過程中所有計算都以二進制方式進行
B.C程序在運行過程中所有計算都以十進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)
16.以下不合法的字符常量是()。
A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’
17.人們提出了用______的原理來設(shè)計軟件,這就是軟件工程學(xué)誕生的基礎(chǔ)。
A.計算機科學(xué)B.數(shù)學(xué)C.工程學(xué)D.運籌學(xué)
18.如果最常用的操作是取第i個結(jié)點及其前驅(qū),最節(jié)省時間的存儲方式是()。
A.單鏈表B.雙向鏈表C.單循環(huán)鏈表D.順序表
19.如果一個函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說明語句后的復(fù)合語句中定義了一個變量,則該變量().
A.為全局變量,在本程序文件范圍內(nèi)有效
B.為局部變量,只在該函數(shù)內(nèi)有效
C.為局部變量,只在該復(fù)合語句中有效
D.定義無效,為非法變量
20.以下關(guān)于字符串的敘述中正確的是()。
A.C語言中有字符串類型的常量和變量
B.兩個字符串中的字符個數(shù)相同時才能進行串符串大小的比較
C.可以用關(guān)系運算符對字符串的大小進行比較
D.空串一定比空格打頭的字符串小
二、2.填空題(20題)21.以下程序段中,錯誤的行號是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}
22.當(dāng)運行以下程序時,輸入abcd,程序的輸出結(jié)果是【】。
insert(charstr[])
{inti;
i=stolen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",sir);
}
main()
{charstr[40];
seanf("%s",str);insert(str);
}
23.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
elseprintf("%d,%d\n",b,a);}
24.下面程序的功能是實現(xiàn)變量x、y內(nèi)容交換,請?zhí)羁铡?/p>
#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}
main()
{intx=10,y=8,z;
【】
printf("%d,%d",x,y);}
25.有以下程序:
intsub(intn){return(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若運行時輸入:1234<回車>,程序的輸出結(jié)果是【】。
26.下列程序的運行結(jié)果為【】。
main()
{inti;
chara[]="Ilovechina!",b[20],*p1,*p2;
p1=a;
p2=b;
while(*p1)
{*p2=*p1;
p1++;
p2++;
}
*p2='\0';
printf("stringbis:%s\n",b);
}
27.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為【】。
28.語句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
29.以下程序運行后的輸出結(jié)果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
30.測試用例包括輸入值集和【】值集。
31.下面程序的運行結(jié)果是______。
#defineDOUBLE(x,y)x/y
main()
{intx=4,y=2,t;
t=DOUBLE(x+y,x-y);
printf("%d",t);
}
32.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;
33.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
34.下面函數(shù)的功能是將一個字符串的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
voidfun(charstr[])
{inti,j,k;
for(i=0,j=【】;i<j;i++,j--)
{k=str[i];
str[i]=str[j];
str[j]=k;}}
35.以下程序中用戶由鍵盤輸入一個文件名,然后輸入一串字符(用#結(jié)束輸入)存放到此文件中,形成文本文件,并將字符的個數(shù)寫到文件的尾部。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[32];intcount=0;
printf(”Inputthefilename:");
scanf("%s",fname);
if((fp=fopen(【】,"w+"))==NULL)
{printf("Can'topenfile:%s\n",fname);exit(0);}
printf("Enterdata:\n");
while((ch=getchar())!='#')
{fputc(ch,fp);count++;}
fprintf(【】,"\n%d\n",count);
fclose(fp);
}
36.設(shè)有以下定義
struetss
{intinfo;struetss*link;}x,y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請寫出刪除結(jié)點y的賦值語句【】。
37.性結(jié)構(gòu)中,隊列的操作順序是先進先出,而棧的操作順序是______。
38.由計算機、操作系統(tǒng)、DBMS、數(shù)據(jù)庫、應(yīng)用程序及用戶組成的一個整體叫做【】。
39.以下程序的輸出結(jié)果是______。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti-2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
40.下面程序的運行結(jié)果是()。
#include<stdio.h>
#defineSlZE12
main()
{chars[SIZE];inti;
for(i=0;i<SIZE;i++)s[i]='A'+i+32;
sub(s,5,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;
}
}
三、1.選擇題(20題)41.有以下程序段:intx=3;do{printf("%d",x-=2);}while(!(--x));其輸出結(jié)果是______。
A.1B.30C.1-2D.死循環(huán)
42.以下不能正確定義二維數(shù)組的選項是
A.inta[2][2]={{1},{2)};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3};
D.inta[2][]={{1,2},{3,4)};
43.若有定義語句:intk[2][3],*pk[3];,則以下語句中正確的是A.pk=k;B.pk[0]=&k[1][2];C.pk=k[0];D.pk[1]=k;
44.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){charch[7]={"12ab56"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}
A.1B.1256C.12ab56D.1256
45.設(shè)計軟件結(jié)構(gòu)是在軟件生命周期的()。
A.軟件定義期B.軟件開發(fā)期C.軟件維護期D.以上3個都不是
46.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
47.下面的程序在編澤時產(chǎn)生錯誤,其出錯原因是()。#include<stdio.h>main(){int1_case;floatprintF;printf("請輸入2個數(shù):");scanf("%d%f",&1_case,&printF);printf("%d%f\n",1_case,printF);}
A.定義語句出錯,1_case不能作為變量名
B.定義語句出錯,printF不能用作用戶自定義標(biāo)識符
C.定義語句無錯,scanf不能作為輸入函數(shù)使用
D.定義語句無錯,printf不能輸出1_case的值
48.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運行后的輸出結(jié)果是______。
A.0B.70C.35D.1
49.讀下面程序段(字符串內(nèi)沒有空格字符):printf("%d\n",strlen("ATS\n012\1\\"));其輸出結(jié)果是()。
A.11B.10C.9D.8
50.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(i=0;i<4;i++)p[i]=&a[i*i+1];for(i=0;i<4;i++){k=k+*p[i];}printf("%d",k);}
A.10B.18C.6D.數(shù)組元素引用不合法,輸出結(jié)果不定
51.以下能正確定義二維數(shù)組的是()。
A.inta[][3];
B.inta[][3]={2*3};
C.inta[][3]={};
D.inta[2][3]={{1},{2},{3,4}}:
52.下面結(jié)構(gòu)體的定義語句中,不正確的是______。
A.structdate{intmonth;intday;intyear;}Structdatedatel;
B.stmctdate{intmonth;intday;intyear;}datel;
C.struct{intmonth;intday;intyear;}date1;
D.#defineDATEstmctdateDATE{intmonth;intday;intyear;}datel;
53.有以下程序:#include<stdio.h>#include<string.h>main(){charp[]={'a','b','c'],q[10]={'a','h','c'}prinff("%d%d\n",strlen(p),strlen(q));以下敘述中正確的是()。
A.在給p和q數(shù)組賦初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3
B.由于P數(shù)組中沒有字符串結(jié)束符,長度不能確定;q數(shù)組中字符串長度為3
C.由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;p數(shù)組中字符長度為3
D.由于p和q數(shù)組中沒有字符串結(jié)束符,故長度都不能確定
54.設(shè)有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤上輸入name<回車>name1<回車>,則程序運行后的輸出結(jié)果是()
A.$8B.@10C.$9D.@9
55.下列所述中,是軟件調(diào)試技術(shù)的是()。
A.錯誤推斷B.集成測試C.回溯法D.邊界值分析
56.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價的賦值語句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
57.軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和()。
A.消除軟件危機B.軟件工程管理C.程序設(shè)計自動化D.實現(xiàn)軟件可重用
58.有以下程序
#include<stdio.h>
main()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);
}
程序的運行結(jié)果是
A.0B.1C.2D.3
59.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是
A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
60.若有如下說明,則______的敘述是正確的。structst{inta;intb[2];}a;
A.結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義是非法的
B.程序只在執(zhí)行到該定義時才為結(jié)構(gòu)體st分配存儲單元
C.程序運行時為結(jié)構(gòu)體st分配6個字節(jié)存儲單元
D.類型名structst可以通過extern關(guān)鍵字提前引用(即引用在前,說明在后)
四、選擇題(20題)61.
62.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法
A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)
63.
64.
65.若有定義和語句:inta,b;scanf("%d,%d",&a,&b);以下選項中的輸人數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是()。
A.3,5,
B.3,5,4
C.3,5
D.35
66.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中
67.
68.語句“printf(”a\bhow\’are\’y\\\bou\n”);”的輸出結(jié)果是()。A.A.a\bhow\'are\'y\\bou
B.a\bhow\’are\’y\bou
C.how'are'you
D.ahow'are'y\bou
69.若調(diào)用fputc函數(shù)輸出字符成功,則其返回值是()。
A.EOFB.1C.0D.輸出的字符
70.
71.
72.
73.(75)下列不屬于結(jié)構(gòu)化分析的常用工具的是()
A.數(shù)據(jù)流圖
B.數(shù)據(jù)字典
C.判定樹
D.PAD圖
74.若有下面的程序段
#include"stdio.h"
main()
{inti=6;
while(i--)
printf("%d",--i);
printf("\n");
}
那么程序的輸出結(jié)果為
A.531B.420
C.654321D.死循環(huán)
75.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
76.
有下列程序:
intfun(intn)
{if(n==1)}return1;
else
return(n+fun(n-1));
}
main
{intx;
scanf("%d",&x);x=fun(x);printf("%d\n",x);
)
執(zhí)行程序時,給變量x輸入10,程序的輸出結(jié)果是()。
A.55B.54C.65D.45
77.(33)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是______。
A.分布式
B.數(shù)據(jù)冗余
C.數(shù)據(jù)分布性和邏輯整體性
D.位置透明性和復(fù)制透明性
78.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結(jié)束
D.軟件維護是指修復(fù)程序中被破壞的指令
79.(23)在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。
A.32
B.31
C.16
D.15
80.
對兩個數(shù)組a和b進行下列初始化:
charm[]="1234567";
charn[]={1,2,3,4,5,6,7};
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將str所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(Z轉(zhuǎn)換A,z轉(zhuǎn)換a),其他字符不變。
請修改函數(shù)fun()中的錯誤,得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.編寫函數(shù)fun(),其功能是:求出1~1000中能被7或11整除,但不能同時被7和ll整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B
2.B本題考查strlen函數(shù)和轉(zhuǎn)移字符,strlen函數(shù)的功能是求字符串的長度,在本題中有“\”,C語言中“\”是轉(zhuǎn)義字符,在計算長度時會將轉(zhuǎn)義符以及后面的第一個字符作為1個長度進行計算,所以答
3.B
4.B
5.D解析:C語言中++運算符的對象可以是整型、實型和字符型,但不可是常量,本題中D為常量。
6.A
7.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進制整數(shù),每個整數(shù)域?qū)捠?。而在C語言中規(guī)定:當(dāng)域?qū)捫∮趯嶋H寬度時域?qū)挷黄鹱饔?,按實際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進制整數(shù)12,等于十進制的10)。所以,4個選項中選項C符合題意。
8.C
9.A解析:本題考查ifelse語句。第1個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第2個if語句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語句:第3個if語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對的else語句:第4個if語句,先判斷條件,d=0,條件不成立,則x=-1,結(jié)束循環(huán)。
10.C
11.C解析:計算機語言分為低級語言和高級語言,C語言屬于高級語言,但并非比其他語言高級,選項A)錯誤;除了機器語言外,其他各種語言都必須編譯成能被計算機識別的機器代碼才能執(zhí)行,選項B)錯誤;C語言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語言,選項D)錯誤。
12.B解析:本題考查的是外部變量的應(yīng)用。因為程序的初始inta=4;語句定義了外部變量a,在以后的執(zhí)行過程中,當(dāng)i=0時,調(diào)用f(0)函數(shù),執(zhí)行的語句是else{inta=7;t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=7,返回值語句returnt+a++;處,外部變量a起作用,返回值為7+5=12:當(dāng)i=1時,調(diào)用f(1)函數(shù),執(zhí)行的是語句else{inta=6:t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=6,返回值語句
13.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個具有N個屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點。
14.A函數(shù)fgete()從文件讀入一個字符到指定變量。函數(shù)fputc()將指定字符寫入審文件中,函數(shù)fprinff(),fwrite()均是寫入文件操作函數(shù)。因此選項B,c。D錯誤。答案為A選項。
15.B所有的C程序都必須經(jīng)過編譯鏈接無誤之后才能運行。在運行過程中,由計算機完成程序中的所有運算。由于計算機只能識別二進制,所以所有的運算都以二進制方式進行,而不是十進制。
16.C轉(zhuǎn)義字符中,八進制的表示形式為\\ddd,但是八進制中不能包含數(shù)字8,所以C選項不合法。故本題答案為C選項。
17.C
18.D
19.C
20.D解析:C語言中只有字符串常量而沒有字符串變量,故選項A不正確:字符串比較大小是以第1個不相同字符的大小為標(biāo)準(zhǔn)的,跟長度沒有關(guān)系,故選項B不正確:字符串比較大小除了使用庫函數(shù)stremp()以外,就只能靠自己寫代碼來實現(xiàn)了,而不能通過關(guān)系運算符來比較大小,因為字符串在表達式中相當(dāng)于coostchar*,即常字符指針,代表的是字符串的首地址,關(guān)系運算符會將兩個字符串的首地址值比較大小,這是毫無意義的。所以選項C也不正確。空串的長度為0,而以空格打頭的字符串的長度至少為1,故選項D正確,本題應(yīng)該選擇D。
21.③數(shù)組可以在定義時整體賦初值,但不能在賦值語句中整體賦初值。因此,可將第三行改為charstr[14]={"IloveChina!"};
22.a*b*c*d*a*b*c*d*解析:程序中的變量i用于存放字符串str的長度,執(zhí)行while語句,通過分析可知,字符串第2*i項的值可由第i項的值得到;第2*i-1項直接賦值為。號,i減1,如此反復(fù)直到不滿足i>0的條件時,輸出運行后的字符串。
23.101,0解析:與運算兩邊的語句必須同時為真時,結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時,a,b的值已經(jīng)發(fā)生了變化。
24.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);
25.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。
26.stringbis:Ilovechina!
27.n(n-1)/2
28.x+=1x+=1解析:本題考查'++'、'--'運算符。'++'、'--'只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
29.2121解析:外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
30.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。
31.2
32.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。
33.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
34.strlen(str)-1strlen(str)-1解析:程序中的for循環(huán)就是用來完成串反序的,所以應(yīng)該對循環(huán)的條件進行初始化,所以在[18]應(yīng)該填入strlen(str)-1。注意,在串反序的時候,不應(yīng)該把串結(jié)束符‘\\0’也反序。
35.fnamefpfname\r\nfp解析:fopen()函數(shù)實現(xiàn)打開文件的功能,通常的調(diào)用方式為:FILE*fp;fp=fopen(文件名,使用文件方式),因此,第一個橫線處要求填寫要打開文件的名字fname。fprintf()函數(shù)的—般調(diào)用方式為:fprintf(文件指針,格式字符串,輸出表列),所以第二個橫線處應(yīng)填寫fp。
36.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:鏈表中結(jié)點的刪除,要刪除結(jié)點y,只需要讓結(jié)點x的指針域指向y結(jié)點的指針域所指向的后續(xù)結(jié)點就可,因此只需把結(jié)點z的地址賦給x的指針域就可以了,即讓結(jié)點x的指針域指向結(jié)點z。而結(jié)點z的地址保存在結(jié)點y的指針域中,因此只需把結(jié)點y的指針域賦值給結(jié)點x的指針域即可。
37.先進后出先進后出解析:隊列和棧都是線性結(jié)構(gòu),但是不同之處在于隊列的操作順序是先進先出,而棧的操作順序是先進后出。
38.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)
39.1616解析:首先將程序中宏替換掉,先把“MCRA(i)”替換成“2*i”,然后把“MCRA(j,2*i)”替換成“2*2*j+2*i”,經(jīng)計算該表達式的值為16,所以最后輸出為16。
40.abcdelkjihgfabcdelkjihgf解析:本題先給字符型數(shù)組s的12個元素賦值a到1共12個字母,函數(shù)sub(char*a,intt1,intt2)的功能是將數(shù)組a的從第t1+1個元素到t2+1個元素進行逆置,在主函數(shù)中調(diào)用sub(s,5,SIZE-1)函數(shù),是將數(shù)組s的第6個元素到第12個元素進行逆置,其他元素位置不變。
41.C解析:在程序中,首先定義了一個整型變量x并賦初值為3,接著執(zhí)行do-while循環(huán)。在do-while循環(huán)中,先執(zhí)行循環(huán)體,即執(zhí)行printf語句(輸出表達式X-=2;的值,這個表達式相當(dāng)于x=x-2=3-2=1,所以第一次輸出值為1),接著判斷while后面括號里的條件表達式是否為真。這個表達式!(--X)等價于!(0)為真(這里--X是先自減,再進行判斷,此時x自減1,值為0),繼續(xù)執(zhí)行循環(huán)體,即執(zhí)行printf語句(輸出表達式x-=2;的值,這個表達式相當(dāng)于x=x-2=0-2=-2,所以第二次輸出值為-2),接著判斷while后面括號里的條件表達式是否為真,顯然,表達式!(--x)等價于(!(-3))為假,退出循環(huán),所以其最終的輸出結(jié)果為1-2。所以,4個選項中選項C符合題意。
42.D解析:本題考核的知識點是二維數(shù)組的定義和初始化。在定義中如果對所有元素賦初值,其第1維的長度可以省略,故選項B正確;二維數(shù)組初始化也可以只對每行或前若干個行的前若干個元素賦初值,故選項A和選項C正確;在二維數(shù)組定義時不能省略第二維的長度,故選項D錯誤。所以,4個選項中選項D符合題意。
43.B答案B
解析:*pk[3]表示的是一個共有3個元素的一維指針數(shù)組。pk[0]=&k=[1][2]表示把二維數(shù)組中下標(biāo)為k[1][2]的值賦予pk[0],也就是pk[0]指向k[1][2]這個元素。
44.A解析:for語句中的條件表達式?jīng)Q定了循環(huán)體只執(zhí)行一次。因此s=0*10+1,于是輸出結(jié)果為1。
45.BB?!窘馕觥吭O(shè)計軟件結(jié)構(gòu),是在軟件概要設(shè)計階段進行的,而概要設(shè)計屬于軟件開發(fā)期。
46.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時,返回值為負(fù)數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。
47.A解析:C語言變量名可由數(shù)字,字母,下劃線構(gòu)成,但首字符不能為數(shù)字。
48.C解析:位與運算是將兩個運算分量看作兩個二進制數(shù),然后對兩個二進制數(shù)的相應(yīng)位進行與運算,若同時為1則結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。因此,當(dāng)兩個運算分量相同時,它們的相應(yīng)位肯定也相同,即不同為1就同為0。所以得到的結(jié)果和運算分量也相同。所以,4個選項中選項C)符合題意。
49.C解析:本題考查字符串的長度。printf的功能是輸出'ATS\\n012\\1\\\\'這個字符串的長度,在字符串中“\\\\”代表一個“\\”,僅為一個字符,而“\\1”代表數(shù)字1,占一個字符,“\\n”是回車換行符,也占一個字符,加上A、T、S、0、1、2,一共是9個字符。
50.B解析:第一個for循環(huán),給數(shù)組a的20個元素分別賦值0~19;第二個for循環(huán),給數(shù)組p賦值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三個for循環(huán),將數(shù)組p中元素的值進行累加,k=1+2+5+10=18。
51.B解析:(1)二維數(shù)組的定義
二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式][常量表達式]。
二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。
(2)二維數(shù)組元素的引用
二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達式其范圍為:0~(常量表達式-1)。
(3)二維數(shù)組的初始化
可以用以下方法對二維數(shù)組元素初始化:
①分行給二維數(shù)組賦初值
例如:inta[2][2]={{1,2},{3,4}};
這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。
②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。
③可以對部分元素賦初值,沒有初始化的元素值為0。
④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。
52.A
53.B解析:strlen函數(shù)用于計算以,'\\0'結(jié)束的字符串的長度,函數(shù)值為字符串的實際長度,長度中不包括,'\\0'。q數(shù)組定義的數(shù)組大小為10,而初始化時字符串只占用了前3個存儲單元,其余存儲單元系統(tǒng)自動加'\\0',故數(shù)組q的長度為3;而p數(shù)組定義時沒有指定大小,其大小根據(jù)初始化所賦值確定為3,沒有字符串結(jié)束符,故字符串的長度不能確定。
54.D
55.C解析:軟件調(diào)試技術(shù)包括強行排錯法、回溯法和原因排除法。邊界值分析、錯誤推斷都是黑盒測試的方法。
56.B解析:本題考核的知識點是for循環(huán)次數(shù)的計算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開始s的值為a,故4個選項中選項B符合題意.
57.B軟件工程的目標(biāo)是,在給定的成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。基于這一目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。
58.B解析:本題考查循環(huán)語句的嵌套以及條件的判斷問題。在程序中,內(nèi)層循環(huán)判斷條件為'\ue008j<=i\ue009',而j的初值為3,故當(dāng)i的值為1和2時,內(nèi)層循環(huán)體都不會被執(zhí)行。只有當(dāng)i和j都等于3時才會執(zhí)行一次。m的值為55對3取模,計算結(jié)果為1。
59.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達式。
60.D解析:結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名是合法的定義,引用成員a的方法是a.a,變量a處于不同的“層次”上,系統(tǒng)完全能夠分情。st是—個結(jié)構(gòu)體名,不會為結(jié)構(gòu)體名分配存儲空間,應(yīng)該是在運行時為結(jié)構(gòu)體變量a分配6個字節(jié)的存儲單元,故選項B和選項C錯誤。
61.Afwrite函數(shù)將數(shù)組a寫入文件,寫入兩遍,讀出后為選項A)的值,所以選擇A)。
62.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
63.A
64.B
65.C在輸入3和5之間除逗號外不能有其他字符。
66.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。
67.A
68.C“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\\b”格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號字符;“\\\\”格式符表示輸出反斜線字符。
69.Dfputc函數(shù)的一般調(diào)用形式為fputc(ch,fp),其中ch是要輸出的字符,它可以是一個字符常量,也可以是一個字符變量,fp是文件指針變量。函數(shù)的作用是將字符(ch的值)輸出到fp所指向的文件中。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廚師服務(wù)合同模板大全
- 2023-2024學(xué)年浙江攝影版(三起)(2020)小學(xué)信息技術(shù)五年級下冊變量計數(shù)(教學(xué)設(shè)計)
- 1 自主選擇課余生活 教學(xué)設(shè)計-2024-2025學(xué)年道德與法治五年級上冊統(tǒng)編版
- 3人體與運動C 教學(xué)設(shè)計-八年級體育與健康
- 四年級第一學(xué)期語文教學(xué)計劃
- 3公民意味著什么( 教學(xué)設(shè)計 )2023-2024學(xué)年統(tǒng)編版道德與法治六年級上冊
- 7 生命最寶貴 第一課時 教學(xué)設(shè)計-2023-2024學(xué)年道德與法治三年級上冊統(tǒng)編版
- 2023-2024學(xué)年粵教版(2019)高中信息技術(shù)必修一《數(shù)據(jù)與計算》第三章第一節(jié)《 體驗計算機解決問題的過程》教學(xué)設(shè)計
- 19《海濱小城》(教學(xué)設(shè)計)2024-2025學(xué)年部編版語文三年級上冊
- 小區(qū)臨時停車合同范本
- 紅茶市場洞察報告
- Unit 4 Time to celebrate 教學(xué)設(shè)計-2024-2025學(xué)年外研版英語七年級上冊
- 健康檔案模板
- DB32-T 4790-2024建筑施工特種作業(yè)人員安全操作技能考核標(biāo)準(zhǔn)
- 2022年安徽阜陽太和縣人民醫(yī)院本科及以上學(xué)歷招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 護理團體標(biāo)準(zhǔn)解讀-成人氧氣吸入療法護理
- 安全警示教育的會議記錄內(nèi)容
- 夫妻異地辭職信
- 2024年度-銀行不良清收技巧培訓(xùn)課件(學(xué)員版)
- 《書籍裝幀設(shè)計》 課件 項目3 書籍裝幀整體設(shè)計
- 【可行性報告】2023年糧油加工項目可行性研究分析報告
評論
0/150
提交評論