填空题
1. 给出下述程序的执行结果
#include <stdio.h>
int a=4,b=5;
int max(int a,int b)
{
int c;
c=a>b?a:b;
return c;
}
void main()
{
int a=6;
printf("%d ",max(a,b));
}
2. 下面的函数invert的功能是将一个字符串的内容颠倒过来。(所有答案填写在此空内,答案间以空格隔开)
void invert (char str [] )
{
int i,j,填空1______;
for(i=0,j=strlen(str)填空2_______;i<j;i++,j--)
{
k=str[i];
str[i]=str[j];
str[j]=k;
}
}
3. 写出下述程序的输出结果
#include <stdio.h>
void main()
{
int a[] = {8,0,3,7,2,5}, i, j, t;
i = 1;
while ( i<6 )
{
t = a[i];
j = i-1;
while( j>=0 && t>a[j] )
{
a[j+1] = a[j];
j--;
}
a[j+1] = t;
i++;
}
i = 0;
while(i<5)
printf("%d,",a[i++]);
printf("%d",a[i]);
}
4. 下面程序段的运行结果是
char ch[ ] = "600";
int a, s = 0;
for (a = 0; ch[a] >= ’0’ && ch[a] <= ’9’; a++)
s = 10 * s + ch[a] - ’0’;
printf("%d", s);
5. 以下程序的运行结果是
#include<stdio.h>
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int k,s,i;
float ave;
for (k=s=i=0;i<10;i++)
{
if (a[i]%2!=0)
continue;
s+=a[i];
k++;
}
if (k!=0)
{
ave=s/k;
printf("%d,%.2f ",k,ave);
}
}
选择题
# 题目
1. 下述对C语言字符数组的描述中错误的是
(A) 字符数组可以存放字符串
(B) 字符数组的字符串可以整体输入,输出
(C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
(D) 不可以用关系运算符对字符数组中的字符串进行比较
2. 有下面的程序段:
char a[3], b[] = "China";
a = b;
printf("%s", a);
则
(A) 运行后将输出China
(B) 运行后将输出Ch
(C) 运行后将输出Chi
(D) 编译出错
3. 下面程序的功能是将字符串s中所有的字符’c’删除。请选择填空。
#include<stdio.h>
main()
{
char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=’