c期末编程题
‘壹’ C语言期末考试编程题
1输入两个整数a和b,若a和b的平方和大于100,则输出平方和的百位以上的数字,否则输出a和 b的和。
要求: 1)输出结果时说明平方和是大于100还是小于100( >100或<100 )
#include<stdio.h>
int main(){
int a, b, c;
scanf("%d%d", &a, &b);
c = a * a + b * b;
if(c > 100) printf("平方和大于100\n%d\n", c%100);
else printf("平方和小于等于100\n%d\n", a + b);
return 0;
}
2输入一个整数,判断是否是5和7的公倍数,若是则输出:5and7yes,否则再判断是否是3的倍数,若是3的倍数输出:3yes,若都不是则输出:no
#include<stdio.h>
int main(){
int input;
scanf("%d", &input);
if(input % 5 == 0 && input % 7 == 0)printf("5and7yes\n");
else if(input % 3 == 0) printf("3yes\n");
else printf("no\n");
return 0;
}
第三,四题和第二题差不多
5计算公式: [ 2*x x=2
y= [ x*x+1 x<2
[ 2*x*x+3*x+1 x>2
要求: 1)从键盘输入x的值,根据x的值求y的值
2)输出y的值
#include<stdio.h>
int main(){
int x, y;
scanf("%d", &x);
if(x == 2) y = 2*x;
else if(x < 2) y = x*x+1;
else y = 2 * x * x + 3 * x + 1;
printf("%d\n", y);
return 0;
}
8 和7差不多
下面原理都差不多 用if基本都能搞定 判断条件就行了 应该LZ能搞定了 东西有点多 -。- 就写这些吧 其他的就不一一写了^ ^
‘贰’ C语言期末考试编程大题求教
#include <stdio.h>
#include <malloc.h>
#include <string.h>
typedef struct info
{
int no;
char name[20];
char s;
float score;
struct info *next;
}NODE;
NODE *creat()
{
NODE *head = NULL;
NODE *p,*r =NULL;
char str[100] = {0};
NODE tmp = {0};
gets(str);
sscanf(str,"%d %s %c %f", &(tmp.no), tmp.name, &(tmp.s), &(tmp.score));
while(strlen(str)>5)
{
p = (NODE*)malloc(sizeof(NODE));
memcpy(p,&tmp,sizeof(NODE));
if (NULL==head)
{
head = p;
}else
{
r->next = p;
}
r = p;
gets(str);
sscanf(str,"%d %s %c %f", &(tmp.no), tmp.name, &(tmp.s), &(tmp.score));
}
r->next = NULL;
return head;
}
NODE *findmax(NODE *p)
{
NODE tmp = {0};
NODE *ptr = NULL;
while (p)
{
if (p->score > tmp.score)
{
memcpy(&tmp,p,sizeof(NODE));
ptr = p;
}
p = p->next;
}
return ptr;
}
void prn(NODE *p)
{
printf("no<%d> name<%s> sex<%c> score<%f>", p->no,p->name,p->s,p->score);
}
void freelst(NODE *pHead)
{
NODE *p;
while (pHead)
{
p = pHead;
pHead = pHead->next;
free(p);
p = NULL;
}
}
void main()
{
NODE *head,*p;
head=creat(); //创建list
p=findmax(head); //查找max
prn(p); //输出信息
freelst(head); //释放申请到的内存空间
}
‘叁’ C语言编程的题目
无论是哪门程序语言都少不了对于字符串的处理,而且用好的话能帮我们解决很多数据处理等方面的问题!
下边我们就一起来看看python是如何分解并统计字符串的?
案例
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
先上代码~
运行效果
题目详述
第一行:
s = input('请输入一个字符串: ')
定义一个输出字符串的input函数,并且将字符串赋值给变量s,其中的 为换行符,目的是为了格式好看一些,不需要的朋友可以选择去掉
第二行:
letters = 0
space = 0
digit = 0
others = 0
定义四个变量,依次是letters、space、digit、others,分别用来统计英文字符、空格、数字以及其他的个数,初始值均为0
第三行:
for c in s:
将字符S拆分,并且遍历里边的每个元素,赋值给c
第四行:
if c.isalpha():
letters += 1
isalpha是一种函数:判断字符ch是否为英文字母,若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0。
判断拆分元素c是否是英文字母,如果是的话英文字母的统计变量letters的值加1
第五行:
elif c.isspace():
space += 1
判断:元素c是否是空格,如果是的话,空格的统计变量space的值加1
第六行:
elif c.isdigit():
digit += 1
判断:元素c是否是数字,如果是的话,数字的统计变量digit的值加1
第七行:
else:
others += 1
判断:元素c以上的都不满足,就是特殊符号,其他的统计变量others的值加1
进阶:
利用这个原理我们就轻松的实现了对于字符串的拆分统计
是不是很便捷呢
结束语
总体来说思路只要有了,以后遇到类似的问题就可以解决了,是不是发现原来Python也没有想象中的那么难!
———— e n d ————
‘肆’ 求解C语言程序设计题
完整的fun函数代码如下:
int fun(STU a[], int n, STU h[]) {
int i, k = 0;
double avg = 0;
for (i = 0; i < n; i++) {
a[i].sum = a[i].s1 * 0.7 + a[i].s2 * 0.3;
avg += a[i].sum; // 先计算总分
}
avg = avg / n; // 再计算平均分
for (i = 0; i < n; i++) {
if (a[i].sum > avg) { // 统计平均分以上的学生
strcpy(a[i].level, "均分以上");
h[k++] = a[i];
}
}
return k;
}
运行结果如下:
可见成功输出了平均分以上的学生信息,望采纳~