- 相關(guān)推薦
2015全國計(jì)算機(jī)二級c語言上機(jī)題庫(附答案)
一、選擇題(每小題1分,共40小題,共40分)
1.設(shè)循環(huán)隊(duì)列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35,F(xiàn)經(jīng)過一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個數(shù)為( )。
A.20
B.0或35
C.15
D.16
2.下列關(guān)于棧的敘述中,正確的是( )。
A.棧底元素一定是最后入棧的元素
B.棧操作遵循先進(jìn)后出的原則
C.棧頂元素一定是最先入棧的元素
D.以上三種說法都不對
3.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是( )0、
A.雙向鏈表
B.帶鏈的棧
C.二叉鏈表
D.循環(huán)鏈表
4.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體間聯(lián)系的是( )。
A.網(wǎng)狀結(jié)構(gòu)
B.樹狀結(jié)構(gòu)
C.屬性
D.二維表
5.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實(shí)體部門和職員間的聯(lián)系是( )。
A.1:m聯(lián)系
B.m:n聯(lián)系
C.1:1聯(lián)系
D.m:l聯(lián)系
6.右兩個關(guān)系R和S如下:
則由關(guān)系R得到關(guān)系S的操作是( )。
A.自然連接
B.并
C.選擇
D.投影
7.數(shù)據(jù)字典(DD)所定義的對象都包含于( )。
A.軟件結(jié)構(gòu)圖
B.方框圖
C.數(shù)據(jù)流圖(DFD圖)
D.程序流程圖
8.軟件需求規(guī)格說明書的作用不包括( )。
A.軟件設(shè)計(jì)的依據(jù)
B.軟件可行性研究的依據(jù)
C.軟件驗(yàn)收的依據(jù)
D.用戶與開發(fā)人員對軟件要做什么的共同理解
9.下面屬于黑盒測試方法的是( )。
A.邊界值分析
B.路徑覆蓋
C.語句覆蓋
D.邏輯覆蓋
10.下面不屬于軟件設(shè)計(jì)階段任務(wù)的是( )。
A.制訂軟件確認(rèn)測試計(jì)劃
B.數(shù)據(jù)庫設(shè)計(jì)
C.軟件總體設(shè)計(jì)
D.算法設(shè)計(jì)
11.以下敘述中正確的是( )。
A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面
B.每個后綴為C的C語言源程序都可以單獨(dú)進(jìn)行編譯
C.在C語言程序中,只有main函數(shù)才可單獨(dú)進(jìn)行編譯
D.每個后綴為.C的C語言源程序都應(yīng)該包含一個main函數(shù)
12.C語言中的標(biāo)識符分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符,以下敘述正確的是( )。
A.預(yù)定義標(biāo)識符(如庫函數(shù)中的函數(shù)名)可用做用戶標(biāo)識符,但失去原有含義
B.用戶標(biāo)識符可以由字母和數(shù)字任意順序組成
C.在標(biāo)識符中大寫字母和小寫字母被認(rèn)為是相同的字符
D.關(guān)鍵字可用做用戶標(biāo)識符,但失去原有含義
13.以下選項(xiàng)中表示一個合法的常量是(說明:符號口表示空格)( )。
A.9口9口9
B.0Xab
C.123E0.2
D.2.7e
14.C語言主要是借助以下哪個功能來實(shí)現(xiàn)程序模塊化?( )
A.定義函數(shù)
B.定義常量和外部變量
C.三種基本結(jié)構(gòu)語句
D.豐富的數(shù)據(jù)類型
15.以下敘述中錯誤的是( )。
A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分
B.常量是在程序運(yùn)行過程中值不能被改變的量
C.定義符號常量必須用類型名來設(shè)定常量的類型
D.用符號名表示的常量叫符號常量
16.若有定義和語句:int a,b;scanf("%d,%d",&a,&b);以下選項(xiàng)中的輸人數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是( )。
A.3,5,
B.3,5,4
C.3,5
D.3,5
17.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為( )。
A.3
B.4
C.1
D.2
18.下列關(guān)系表達(dá)式中,結(jié)果為“假”的是( )。
A.(3+4)>6
B.(3!=4)>2
C.3<=4‖3
D.(3<4)=1
19.若以下選項(xiàng)中的變量全部為整型變量,且已正確定義并賦值,則語法正確的switch語句是( )。
A.switch(a+9)
{case cl:y=a-b;
case c2:y=a+b;
}
B.switch a*b
{case l0:x=a+b;
default:y=a-b;
}
C.switch(a+b)
{casel:case3:y=a+b;break;
case0:case4:y=a-b;
}
D.switch(a*a+b*b)
{default:break;
case 3:y=a+b;break;
case 2:y=a-b;break;
}
20.有以下程序:
#include
main()
{ int a=-2,b=0;
while(a++&&++b);
printf("%d,%d\n",a,b);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.1,3
B.0,2
C.0,3
D.1,2
21.設(shè)有定義:int x=o,* P;,立刻執(zhí)行以下語句,正確的語句是( )。
A.p=x;
B.* p=x;
C.D=NULL;
D.* p=NULL;
22.下列敘述中正確的是( )。
A.可以用關(guān)系運(yùn)算符比較字符串的大小
B.空字符串不占用內(nèi)存,其內(nèi)存空間大小是0
C.兩個連續(xù)的單引號是合法的字符常量
D.兩個連續(xù)的雙引號是合法的字符串常量
23.有以下程序:
#include
main()
{ rhar a=’H’;
a=(a>=’A’&&a<=’2’)?(a-’A’+’a’):a;
printf("%c\n",a);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.A
B.a
C.H
D.h
24.有以下程序:
#include
int f(int x);
main()
{ int a,b=0;
for(a=0;a<3;a++)
{b=b+f(a);putchar(’A’+b);}
}
int f(int x)
{ return x * xl; }
程序運(yùn)行后的輸出結(jié)果是( )。
A.ABE B.BDI C.BCF D.BCD
25.設(shè)有定義:int x[2][3];,則以下關(guān)于二維數(shù)組X的敘述錯誤的是( )。
A.x[0]可看做是由3個整型元素組成的一維數(shù)組
B.x[0]和x[l]是數(shù)組名,分別代表不同的地址常量
C.數(shù)組X包含6個元素
D.可以用語句x[o]=0;為數(shù)組所有元素賦初值0
26.設(shè)變量P是指針變量,語句P=NULL;是給指針變量賦NULL值,它等價(jià)于( )。
A.p="";
B.p="0";
C.p=0;
D.p=";
27.有以下程序:
#include
main()
{int a[]={10,20,30,40},*p=a,j;
for(i=0;i<=3;i++){a[i]=*P;p++;}
printf("oAd\n",a[2]);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.30
B.40
C.10
D.20
28.有以下程序:
#include
#define N 3
void fun(int a[][N],int b[])
{ int i,j;
for(i=0;i
for(j=i;j
}
main()
{int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i
}
程序運(yùn)行后的輸出結(jié)果是(,)。
A.2,4,8,
B.3,6,9,
C.3,5,7,
D.1,3,5,
29.有以下程序(strcpy為字符串復(fù)制函數(shù),strcat為字符串連接函數(shù)):
#include
#include
main()
{char a[10]="abc",b[10]="012",c[10]="xyz";
strcpy(a+1,b+2);
puts(strcat(a,c+1));
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.al2xyz
B.12yz
C.a2yz
D.bc2yz
30.以下選項(xiàng)中,合法的是( )。
A.char str3[]={’d’,’e’,’b’,’u’,’g’,’\0’};
B.char str4;str4="hello world";
C.char name[10];name="china";
D.char strl[5]="pass",str2[6];str2=strl;
31.有以下程序:
#include
main()
{ char*s="[2]34";int k=0,a=0;
whil(s[k+1]!=’\o’)
{ k++;
if(k%2=o){a=a+(s[k]-’0’+1);continue; }
a=a+(s[k]-’0’);
printf("k=%d a=%d\n",k,a);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.k=6 a=11
B.k=3 a=14
C.k=4 a=12
D.k=5 a=15
32.有以下程序:
#include
main()
{char a[5][10]={"one","tw0","three","four","five"};
int i,j;
char t: 、
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i][O]>a[j][0])
{t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)
puts(a[1]);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.fwo
B.fix
C.two
D.owo
33.有以下程序:
#include
int a=1,b=2:
void funl(int a,int b)
{printf( "%d%d",a,b); }
void fun2()
{ a=3;b=4; }
main()
{ funl(5,6);fun2();
printf("%d%d\n",a,b);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.1 2 5 6
B.5 6 3 4
C.5 6 1 2
D.3 4 5 6
34.有以下程序:
#include
void func(int n)
{ static int num=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n"); }
程序運(yùn)行后的輸出結(jié)果是( )。
A.4 8
B.3 4
C.3 5
D.4 5
35.有以下程序:
#include
#include
void fun(int*pl,int*p2,int*s)
{ s=(int*)malloc(sizeof(int));
*s=*pl+*p2;
free(s);
}
main()
{int a=1,b=40,*q=&a;
fun(&a,&b,q);
printf("%d\n",*q);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.42
B.0
C.1
D.41
36.有以下程序:
#include
struct STU{char name[9];char sex;int score[2];};
void f(struct STU a[])
{ struct STU b={"Zhao",’m’,85,90);
a[1]=b;
}
main()
{struct STU c[2]={{"Qian",’f’,95,92},{"Sun",’m’ 98,99}};
f(c);
printf(”%s,%c,%d,%d,¨,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);
printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[o],c[1].score
[1]);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.Zhao,m,85,90,Sun,m,98,99
B.Zhao,m,85,90,Qian,f,95,92
C.Qian,f,95,92,Sun,m,98,99
D.Qian,f,95,92,Zhao,m,85,90
37.以下敘述中錯誤的是( )。
A.可以用typedef說明的新類型名來定義變量
B.typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤
C.用typedef可以為基本數(shù)據(jù)類型說明一個新名稱
D.用typedef說明新類型的作用是用一個新的標(biāo)識符來代表已存在的類型名
38.以下敘述中錯誤的是( )。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
39.若有定義語句int b=2;,則表達(dá)式(b<<2)/(3‖b)的值是( )。
A.4
B.8
C.0
D.2
40.有以下程序:
#include
main()
{ FILE*fp; int i,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w+");
for=(i=o;i<6;,i++)fpintf(fp,"%d\n",a[i]);
rewind(fp);
for(i=0;i%6;i++)fscanf(fp,"%d",&a[5-i]);
fclose(fp);
for(i=0;i%6;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.4,5,6,1,2,3,
B.1,2,3,3,2,1,
C.1,2,3,4,5,6,
D.6,5,4,3,2,1,
二、基本操作題(共18分)
str是一個由數(shù)字和字母字符組成的字符串,由變量num傳人字符串長度。請補(bǔ)充函數(shù)proc(),該函數(shù)的功能是:把字符串str中的數(shù)字字符轉(zhuǎn)換成數(shù)字并存放到整型數(shù)組bb中,函數(shù)返回?cái)?shù)組bb的長度。
例如,str="abcl23de45f967",結(jié)果為:l234567。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達(dá)式或語句。
試題程序:
#include
#define M 80
int bb[M];
int proc(char str[],int bb[],int num)
{
int i,n=0;
for(i=0;i
if( 【1】 )
{
bb[n]=【2】 ;
n++;
}
}
return 【3】 ;
}
void main()
{
char str[M];
int num=0,n,i;
printf("Enter a string:\n");
gets(str);
while(str[num])
num++:
n=proc(str,bb,num);
printf("\nbb=");
for(i=0;i
}
三、程序改錯題(共24分)
下列給定程序中,函數(shù)proc()的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。
例如,輸入opdye,則應(yīng)輸出deopy。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include%string.h>
#include%stdlib.h>
#include
#include
//****found****
int proc(char str[])
{
char C;
unsigned i,j;
for(i=0;i
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=C;
}
}
void main()
{
char st/[81];
system("CLS");
printf("\nPlease enter a character
string:");
gets(str);
printf("\nknBefore sorting:\n %s",str);
proc(str);
printf("\nAfter sorting decendingly:\n
%S",str);
}
四、程序設(shè)計(jì)題(共18分)
請編寫函數(shù)proc(),它的功能是計(jì)算:s=(In(1)4+ln(2)4+ln(3)+…+In(m))0.5
在C語言中可調(diào)用log(n)函數(shù)求ln(n)。
例如,若m的值為30,則proc()函數(shù)值為8.640500。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。
試題程序:
#include
#include
#inclllde
#include
double proc(int m)
{
}
void main()
{
system("CLS");
printf("%f\n",proc(30));
}
【參考答案及專家詳解】
一、選擇題
1.C!窘馕觥繑(shù)據(jù)的邏輯結(jié)構(gòu)是描述數(shù)據(jù)之間的關(guān)系,分兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)是n個數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對一”的線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。常用的線性結(jié)構(gòu)有:線性表,棧,隊(duì)列,雙隊(duì)列,數(shù)組,串。非線性結(jié)構(gòu)的邏輯特征是一個結(jié)點(diǎn)元素可能對應(yīng)多個直接前驅(qū)和多個后驅(qū)。常見的非線性結(jié)構(gòu)有:樹(二叉樹等),圖(網(wǎng)等),廣義表。
2.B!窘馕觥縌(1:35)則隊(duì)列的存儲空間為35;對空條件:front=rear(初始化時:front=rear),隊(duì)滿時:(rear+1)%n= =front,n為隊(duì)列長度(所用數(shù)組大小),因此當(dāng)執(zhí)行一系列的出隊(duì)與入隊(duì)操作,front=rear.則隊(duì)列要么為空,要么為滿。
3.B!窘馕觥織J窍冗M(jìn)后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。
4.D。【解析】單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種關(guān)系。
5.A!窘馕觥坎块T到職員是一對多的,職員到部門是多對一的,因此,實(shí)體部門和職員間的聯(lián)系是l:m聯(lián)系。
6.C!窘馕觥窟x擇:是在數(shù)據(jù)表中給予一定的條件進(jìn)行篩選數(shù)據(jù)。投影:是把表中的某幾個屬性的數(shù)據(jù)選擇出來。連接:有自然連接、外連接,內(nèi)連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學(xué)中的并是一樣的。兩張表進(jìn)行并操作,要求它們的屬性個數(shù)相同并且需要相容。
7.C!窘馕觥繑(shù)據(jù)字典(DD)是指對數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明。
8.B!窘馕觥俊盾浖尚行苑治鰣(bào)告》是軟件可行性研究的依據(jù)。
9.A!窘馕觥亢诤袦y試方法主要有等價(jià)類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅(qū)動、路徑測試等,主要用于軟件驗(yàn)證。
10.A!窘馕觥寇浖O(shè)計(jì)階段的主要任務(wù)包括丙個:一是進(jìn)行軟件系統(tǒng)的可行性分析,確定軟件系統(tǒng)的建設(shè)是否值得,能否建成。二是進(jìn)行軟件的系統(tǒng)分析,了解用戶的需求,定義應(yīng)用功能,詳細(xì)估算開發(fā)成本和開發(fā)周期。
11.B。【解析】C語言是一種成功的系統(tǒng)描述語言,具有良好的移植性,每個后綴為.C的C語言源程序都可以單獨(dú)進(jìn)行編譯。
12.A!窘馕觥坑脩魳(biāo)識符不能以數(shù)字開頭,C語言中標(biāo)識符是區(qū)分大小寫的,關(guān)鍵字不能用做用戶標(biāo)識符。
13.B!窘馕觥慨(dāng)用指數(shù)形式表示浮點(diǎn)數(shù)據(jù)時,E的前后都要有數(shù)據(jù),并且E的后面數(shù)要為整數(shù)。
14.A!窘馕觥緾語言是由函數(shù)組成的,函數(shù)是C語言的基本單位。所以可以說C語言主要是借助定義函數(shù)來實(shí)現(xiàn)程序模塊化。
15.C!窘馕觥吭贑語言中,可以用一個標(biāo)識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標(biāo)識符常量。
16.C!窘馕觥吭谳斎3和5之間除逗號外不能有其他字符。
17.C。【解析】Char類型數(shù)據(jù)占1個字節(jié)。
18.B!窘馕觥吭谝粋表達(dá)式中,括號的優(yōu)先級高,先計(jì)算3 !=4,為真即是l,1>2為假。
19.D!窘馕觥窟x項(xiàng)A,當(dāng)cl和c2相等時,不成立;選項(xiàng)B,a*b要用括號括起來;選項(xiàng)C,case與后面的數(shù)字用空格隔開。
20.D!窘馕觥枯敵龅慕Y(jié)果是:-1,1 0,2 1,2
21.C!窘馕觥咳绻麤]有把P指向一個指定的值,*P是不能被賦值的。定義指針變量不賦初始值時默認(rèn)為null。
22.D。【解析】比較兩個字符串大小用函數(shù)strcomp(S,t),空字符串有結(jié)束符,所以也要占用字節(jié),兩個雙引號表示的是空字符串。
23.D。【解析】多元運(yùn)算符問號前面表達(dá)式為真,所以(a-’A’+’a’)賦值給a,括號里的運(yùn)算是把大寫字母變成小寫字母,所以答案應(yīng)為選項(xiàng)D。
24.B!窘馕觥康谝淮窝h(huán)時,b=1,輸出結(jié)果為B;
第二次循環(huán)時,b=3,輸出結(jié)果為D;
第三次循環(huán)時,b=8,輸出結(jié)果為I。
25.D!窘馕觥縳[0]是不能賦值的。
26.C。【解析】在C語言中null等價(jià)于數(shù)字0。
27.A!窘馕觥縁or循環(huán)結(jié)束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。
28.B!窘馕觥縁un函數(shù)功能是把數(shù)組a的每一行的最大值賦給b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。
29.C。【解析】第一次執(zhí)行字符串的復(fù)制函數(shù)a的值是a2,第二次執(zhí)行的是字符串的連接函數(shù),所以運(yùn)行結(jié)果為a2yz。
30.A!窘馕觥窟x項(xiàng)B不能把一個字符串賦值給一個字符變量,選項(xiàng)c和D犯了同樣的錯誤是把字符串賦給了數(shù)組名。
31.C!窘馕觥枯敵鼋Y(jié)果:k=1 a=2
k=2 a=4
k=3 a=7
k=4 a=12
32.A!窘馕觥縁or循環(huán)完成的功能是把二維數(shù)組a的第一列的字母按從小到大排序,其他列的字母不變。
33.B。【解析】Funl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結(jié)果是5634。
34.A!窘馕觥康谝徽{(diào)用func函數(shù)時輸出4,第二次調(diào)用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是4 8。
35.C。【解析】Fun函數(shù)功能是新開辟內(nèi)存空間存放a和b的地址,q的地址并沒有變化,所以應(yīng)該還是指向地址a。
36.D!窘馕觥縁函數(shù)是為結(jié)構(gòu)體數(shù)組的第二個數(shù)賦值,數(shù)組的第一個數(shù)沒有變化,所以正確答案應(yīng)選D。
37.B!窘馕觥坑胻ypedef說明的類型不是必須用大寫,而是習(xí)慣上用大寫。
38.A!窘馕觥亢瘮(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。
39.B!窘馕觥2的二進(jìn)制數(shù)為010,移兩位后的二進(jìn)制數(shù)為01000,轉(zhuǎn)成十制數(shù)為8,(3||2)為真即1,8/ 1=8,所以結(jié)果為8。
40.D!窘馕觥窟@個是對文件的操作,把數(shù)組的數(shù)寫到文件里,然后再從文件里倒序讀出。所以輸出結(jié)果為6,5,4,3,2,1。
二、基本操作題程序填空題
【1】str[i]>=’0’&&str[i]<=’9’【2】str[i]-’O’【3】n
【解析】題目中要求把字符串str中的數(shù)字字符轉(zhuǎn)換成數(shù)字并存放到整型數(shù)組bb中。首先,應(yīng)判斷字符串str中每個字符是否是數(shù)字字符。因此,【1】處填“str[i]>=’0’&&str[i]<=’9’”將每一個數(shù)字字符轉(zhuǎn)化為數(shù)字放在整型數(shù)組bb中,因此,【2】處填“str[i]-’0’;由函數(shù)proc()可知,變量n中存放整型數(shù)組bb中的元素個數(shù),最后要返回到主函數(shù)當(dāng)中,因此,【3】處填’n’。
三、程序改錯題
(1)錯誤:int proc(char str[])
正確:void proc(char str[])
(2)錯誤:str[j]=str[i++];
正確:str[j]=str[i];
【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc()沒有返回值。因此,“int proc(char str[])”應(yīng)改為“void proc(char str[])”;由函數(shù)proc()可知,if語句塊完成將字符串str中的第i個元素與第j個元素相交換。因此,“str[j]=str[i++];”應(yīng)改為“str[j]=str[i];”。
四、程序設(shè)計(jì)題
double proc(int m)
{
int i;
double s=0.0; //s是表示其和
for(i=1;i<=m;i++)
s=s+log(i); //計(jì)算s=ln(1)+ln(2)+ln(3)+…+ln(m)
return sqrt(s); //最后將其開平方的值返回到主函數(shù)中
}
【解析】由題目中所給表達(dá)式可知,表達(dá)式的值為m項(xiàng)表達(dá)式的和然后開平方?梢允紫韧ㄟ^m次循環(huán)求得m項(xiàng)表達(dá)式的和,然后將其和開平方并返回到主函數(shù)當(dāng)中。
【全國計(jì)算機(jī)二級c語言上機(jī)題庫附答案】相關(guān)文章:
2017計(jì)算機(jī)二級C語言上機(jī)題庫及答案08-07
全國計(jì)算機(jī)等級考試二級c語言上機(jī)題庫10-28
全國計(jì)算機(jī)二級《C++》上機(jī)試題附答案09-16
2024二級c語言上機(jī)題庫04-18
2015計(jì)算機(jī)二級c語言上機(jī)題庫06-19
2017計(jì)算機(jī)二級C語言上機(jī)測試題附答案10-24
2016年計(jì)算機(jī)二級C語言上機(jī)題庫11-07