- 相關(guān)推薦
2016計(jì)算機(jī)二級(jí)c上機(jī)考試題庫
一、程序填空題
請(qǐng)補(bǔ)充函數(shù)proc(char*str),該函數(shù)的功能是把字符串中的內(nèi)容逆置。
例如,字符串中原有的字符串為abcdef9,則調(diào)用該函數(shù)后,串中的內(nèi)容變?yōu)間fedcba。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達(dá)式或語句。
試題程序:
#include
#include t
#include
#include
#define M 81
void proc(char*str)
【2】 ;
【3】 ;
}
}
void main()
{
char str[M];
system("CLS"):
printf("Enter a string:");
gets(str);
printf("The original string is:");
puts(str);
proc(str);
printf("\n");
printf("The string after modified:");
puts(str);
}
二、程序改錯(cuò)題
下列給定程序中,函數(shù)proc()的功能是:將字符串str 中所有字符復(fù)制到字符串b中,要求每復(fù)制3個(gè)字符之后插入一個(gè)空格。例如,在調(diào)用proc()函數(shù)之前給字符串str 輸入abcdefghijk,調(diào)用函數(shù)之后,字符串b中的內(nèi)容則為abe def ghijk。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
void proc(char*str,char*b)
{
int i,k=0:
while(*str)
//****found****
{
i=1;
//****found****
while(i<3||*str)
{
b[k]=*str;
k++;str++;i++;
}
if(*str)
//****found****
{b[k]=’’;}
void main()
{
char str[80],b[80];
printf("Enter a string:");gets(str);
printf("The original string:");
puts(str);
proc(str,b);
printf("\nThe string after insert
space:");puts(b);printf("\n\n");
}
三、程序設(shè)計(jì)題
請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從P到n-1(p≤n-1)的數(shù)組元素平移到數(shù)組的前面。
例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,p的值為4。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5,6,7,8,9,10,11,12,13,14,1,2,3,4。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include
#define M 80
void proc(int * w,int P,int n)
{
}
void main()
{
int arr[M]={1,2,3,4,5,6,7,8,9,10,11,12,13,14};
int i,p,n=14;
printf("The original data:\n");
for(i=0:i
printf("%3d",arr[i]);
printf("\n\nEnter P:");
scanf("%d",&p);
proc(arr,p,n);
printf("\nThe data after moving:\n");
for(i=0:i
printf("%3d",arr[i]);
printf("\n\n");
}
【參考答案】
一、程序填空題
【1】i
【解析】要將字符串中的內(nèi)容逆置.可以通過將字符串中的第一個(gè)字符和最后一個(gè)字符互換,第二個(gè)和倒數(shù)第二個(gè)互換,直到字符串str最中間的字符為止,因此,【1】處填“i
二、程序改錯(cuò)題
(1)錯(cuò)誤:i=1:
正確:i=0;
(2)錯(cuò)誤:while(i<3||*str)
正確:while(i<3&&*str)
(3)錯(cuò)誤:b[k]=’’;
正確:b[k++]=’’;
【解析】由函數(shù)proc()可知,變量i為計(jì)算每次字符個(gè)數(shù)是否到3的計(jì)數(shù)器變量,其初始值為0,因此,i=1;應(yīng)改為i =0;。當(dāng)計(jì)數(shù)器i小于3,而且字符串str沒有結(jié)束時(shí),將str 中的字符賦值給字符串b,因此,“while(i<3||*str)”應(yīng)改為“while(i<3&&*str)”。每次計(jì)數(shù)器變量為3而字符串str沒有結(jié)束時(shí),為字符串b賦值為空格,而不是空字符,因此,“b[k]=’’;”應(yīng)改為“b[k++]=’’;”。
三、程序設(shè)計(jì)題
void proc(int*w,int p,int n)
{
int i,j,t;
for(i=P;i<=n-1;i++)
{ t=w[n-1];//t放最后一個(gè)元素
for(j=n-2;j>=0;j--)
w[j+1]=w[j]; //每循環(huán)一次,把所有的元
素往后侈
w[0]=t; //再把最后一個(gè)放到第一個(gè)空間中
}
}
【解析】題目中要求把下標(biāo)從p到n-1的數(shù)組元素平移到數(shù)組的前面,可以通過每一次循環(huán)將最后一個(gè)元素放在第一個(gè)位置上,使其成為第一個(gè)元素,其余元素后移一個(gè)位置。通過n-1-p次循環(huán)實(shí)現(xiàn)將從p到n-1的數(shù)組元素平移到數(shù)組的前面。
【計(jì)算機(jī)二級(jí)c上機(jī)考試題庫】相關(guān)文章:
2015計(jì)算機(jī)二級(jí)c語言上機(jī)題庫06-19
全國計(jì)算機(jī)等級(jí)考試二級(jí)c語言上機(jī)題庫10-28
2017計(jì)算機(jī)二級(jí)C語言上機(jī)題庫及答案08-07
2016年計(jì)算機(jī)二級(jí)C語言上機(jī)題庫11-07
計(jì)算機(jī)二級(jí)考試《C語言》上機(jī)答題技巧06-27
2015全國計(jì)算機(jī)二級(jí)c語言上機(jī)題庫(附答案)09-29