一、填空题
二、程序改错题
三、分析程序题
功能:输出数组a中在同下标情况下与b数组中元素不同的元素
运行结果: 12 4 17 24 27
15.
功能:将随机输入的10个字符,从大到小依次排序输出(冒泡排序)
四、算法设计及编程题
16. 输入一行字符,。。。
(1)流程图
(2)程序代码:
#include <stdio.h>
int main(void)
{
char str[100];
int i, num = 0;
printf("请输入字符串:\n");
gets(str);
for ( i = 0; str[i] != '\0'; i++ )
{
if ( str[i] == ' ' )
if ( str[i-1] >= 'a' && str[i-1] <= 'z' || str[i-1] >= 'A' && str[i-1] <= 'Z' )
num++;
}
num++;
printf("单词总数为: %d\n", num);
return 0;
}
17. 输入10个雇员的信息,。。。
(1)流程图
(2)程序代码:
#include <stdio.h>
#include <stdio.h>
#define N 4
typedef struct Mess
{
char name[11];
int num;
}Mess;
void Input(Mess *p);
void Sort(Mess *p);
int main(void)
{
Mess mess[N];
Input(mess); //输入
Sort(mess); //排序
printf("\n排序后的人员名单为:\n");
for ( int i = 0; i < N; i++ )
printf("姓名:%s,工资号: %d\n", mess[i].name, mess[i].num);
return 0;
}
void Input(Mess *p)
{
int i;
printf("请输入员工信息(姓名 工资号)\n");
for ( i = 0; i < N; i++ )
scanf("%s%d", (p+i)->name, &(p+i)->num);
}
void Sort(Mess *p)
{
int i, j;
Mess temp;
for ( i = 0; i < N-1; i++ )
{
for ( j = 0; j < N-i-1; j++ )
{
if ( p[j].num > p[j+1].num )
{
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
}
18. 请编写函数char *fun(char *str, int n)
(1)流程图
(2)程序代码:
#include <stdio.h>
#include <string.h>
char *fun(char *str, int m);
int main(void)
{
char s[100];
int m;
printf("Please input string: ");
scanf("%s", s);
printf("Enter m: ");
scanf("%d", &m);
if ( m > strlen(s) )
{
printf("\nError!\n");
return 1;
}
printf("Result is :%s\n", fun(s,m));
return 0;
}
char *fun(char *str, int m)
{
int i, j;
for ( j = 0; j < m; j++ )
{
for ( i = 0; ; i++ )
{
static char temp = 0;
if ( i == 0 )
temp = str[i];
if ( str[i+1] != '\0' )
str[i] = str[i+1];
else
{
str[i] = temp;
break;
}
}
}
return str;
}
19. (大概意思是将输入的字符串,写入文本文件中)
(1)流程图:
(2)程序代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch;
fp = fopen("file.txt", "w");
if ( fp == NULL )
{
printf("\nError!\n");
exit(0);
}
ch = getchar();
while ( ch != '#' )
{
fputc(ch,fp);
ch = getchar();
}
fclose(fp);
}