C填空题50题 下载本文

main() {

int xx[N]; int yy[N];

int num=0,n=0,i=0;

printf(\ do {

scanf(\ }while(xx[num++]!=0); n=fun(xx,yy,num); printf(\ for(i=0;i

printf(\} 答案:

1). xx[i] 2). bb[n++]=xx[i]

第5题 (30.0分) 题号:633

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:对只包含'-'和字母字符的字符串str进行如下处理: 删除str中前导和尾部连续的'-'字符,保留串中字母字符以 及字母间的'-'字符。

例如,str中初始字符串为\。 处理后,str中的字符串为\。 程序中isalpha函数功能是判断参数是否是字母,是字母, 函数值为真,否则函数值为假。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include #include void main(){

char str[]={\ int i,start,end; i=0;

while(str[i++]=='-') ;

start=i-1;

/***********SPACE***********/ while(str[i] != 【?】){ if(isalpha(str[i])) end=-1;

else if(isalpha(str[i-1])) end=i-1; i++; }

str[end+1]='\\0';

for(i=start;i<=end+1;i++) /***********SPACE***********/ str[i-【?】] = str[i]; printf(\} 答案:

1). 0 或 '\\0' 2). start

第6题 (30.0分) 题号:635

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:1、第一个for循环中给a数组10个元素依次赋字符 'A'、'B'、'C'、'D'、'E'、'V'、'W'、'X'、'Y'、'Z'。

2、第二个for循环中使a数组10个元素的值对称折叠,变成 'A'、'B'、'C'、'D'、'E'、'E'、'D'、'C'、'B'、'A'。

3、第三个for循环输出的字符依次是

'A'、'B'、'C'、'D'、'E'、'A'、'B'、'C'、'D'、'E'。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include void main(){ int a[10]; int i;

for(i=0;i<10;i++) if(i<5) a[i]=i+65;

/***********SPACE***********/ else a[i]=【?】; for(i=0; i<5; i++) a[9-i]=a[i]; for(i=0;i<10;i++) /***********SPACE***********/

printf(\【?】]); printf(\} 答案:

1). i+81 或 81+i 或 i+'Q' 或 'Q'+i 或 'V'+i-5 或 'V'-5+i 或 i-5+'V' 或 i+'V'-5 2). ? i:i-5 或 ? i:14-i

第7题 (30.0分) 题号:636

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:将输入的一个十进制正整数转换为十六进制字符形式并显示。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include void main(){

char dex[17]={\ int c[8],i,base=16; int n;

printf(\输入十进制正整数 \ scanf(\ i=0; do{

/***********SPACE***********/ c[i++]=【?】; n=n/base; }while(n);

printf(\对应的十六进制数 \ for(--i;i>=0;i--)

/***********SPACE***********/ printf(\【?】]); printf(\}

答案:

1). nose 或 n % 16 或 n & (base-1) 或 n & 15 或 n & 0xf 或 n & 0x0f 2). c[i]

第8题 (30.0分) 题号:637

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:统计字符串str中单词的数量、最长单词的字母数、最短单 词字母数。单词之间至少有一个空格。假设str中最长单词 不超过20个字母。程序中isalpha函数功能是判断参数是否 是字母字符,如果是字母字符,函数返回真,否则函数返 回假。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include #include void main(){ int i,len=0;

int numofword,maxlen,minlen;

char str[1000]=\They also have various personalities.\/***********SPACE***********/ numofword=【?】; maxlen=0; minlen=20;

for(i=0;str[i];i++){

if(!(isalpha(str[i])) && isalpha(str[i-1])){ maxlen=len>maxlen? len: maxlen; minlen=len

else if(isalpha(str[i])) /***********SPACE***********/ 【?】; }

printf(\单词数=%d,最长单词字母数=%d,最短单词字母数=%d\\n\