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;
}
運行結果如下:
可見成功輸出了平均分以上的學生信息,望採納~