A. c语言编程题目
这题用筛选法求素数,打表,数据太大,这样写直接超时。
筛选法,打表部分代码:
#define MAX 1000000
int sign[MAX]={1,1,0}
int prime[MAX/2];
int main()
{
int i,j,l=0;
for(i=2;i<=MAX;i++)
{
if(sign[i]==0)
{
prime[++l]=i;
for(j=2*i;j<=MAX;j+=i)
sign[j]=1;
}
}
return 0;
}
B. C语言编程题目
你要设计一种数据结构来表示每一个方块。一种简单直接的数据结构是 :
classBox{
intleft,right,up,down;
public:
boolrightNeighbour(Boxconst&other)const{
returnother.left==right;
}
booldownNeighbour(Boxconst&other)const{
returnother.up==down;
}
}
比如 left, right, up, down 分别表示左右上下是否可以连通,假设0为不连通,1为连通。
举例,比如
Boxmountain=Box{0,0,0,0}//四个方向都不连通,是小山
我们需要初始化N*M个Box对象,每一个连通情况按图片来。
除了最后一列,每一个box都需要检查与右边的连通是否匹配。
BoxA,B;
判断Box B 是否可以放在Box A 右边,条件 A.right ==B.left
同理 除了最后一行,每一个box都需要检查与下边的连通是否匹配。
BoxC,D;
判断Box D 是否可以放在Box C 下边,条件 C.down == D.up
所有满足这两个条件的排列就是一组解。
如果需要判断边界也把边界条件加上。
C. 求教c语言的编程题目
根据题意构建学生结构体。查询分析。
1.手动录取学生信息对应我的函数iputCStus,连续输入一个班级的学生信息,构建一条链表,返回头节点,想创建多个班级,反复调用即可。
2.统计平均分和最高最低分,对应我的函数showById。
3.统计功能对应函数tjRN。
另外,由于演示和测试需要一组学生信息,反复手动输入不合理,所以我又单独写了一个随机数自动生成数据的函数init,你不需要可以删除。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <malloc.h>
#define SN 3//学科门数
#define MINS 60//不及格阀值,低于该值不及格
typedef struct student
{
char id[10];
char name[10];
int scores[SN];
struct student *next;
}STU;
STU *iputCStus();//输入一个班级的学生信息,创建链表,成功返回头节点,失败返回NULL
void freeSList(STU *stusHead);// 释放链表
void showById(STU *stusHead);//按照学号输出成绩
void showBySc(STU *stusHead);//每门课程的平均分、最高分、最低分
void tjRN(STU *stusHead);//统计区间人数60以下,[60~79],[80~89],[90及以上],返回数组
int main()
{
//----测试用!!!代替手动输入---------
STU *init();
STU *stusHead=init();
//-------------------------------------
//题目要的手动输入--替换上面的测试函数--------------
//STU *stusHead=iputCStus();
//--------------------------------------------------
showById(stusHead);
showBySc(stusHead);
tjRN(stusHead);
return 0;
}
STU *init()//测试用函数,不需要可以删除,用到头文件stdlib和time也可以一并删除
{
#define STN 9//测试生成的学生数量
int i,j,sc;
char snum[STN];
STU *stusTail=NULL;
static STU stusHead,stusNew[STN];
srand(time(NULL));
printf("---开始生成测试用数据链表(50~100随机数作为成绩)---- ");
for(i=0;i<STN;i++)
{
strcpy(stusNew[i].id,"S00");
strcat(stusNew[i].id,itoa(i+1,snum,10));
strcpy(stusNew[i].name,"学生");
strcat(stusNew[i].name,snum);
for(j=0;j<SN;j++)
{
sc=rand()%51+50;//50~100的随机数
stusNew[i].scores[j]=sc;
}
if(i==0)
stusHead.next=&stusNew[i];
else
stusTail->next=&stusNew[i];
stusTail=&stusNew[i];
}
return &stusHead;
}
void freeSList(STU *stusHead)
{
STU *stusLast=NULL;
if(stusHead)
while(stusHead->next)
{
if(stusLast)
free(stusLast);
stusLast=stusHead->next;
stusHead=stusHead->next;
}
if(stusLast)
free(stusLast);
if(stusHead)
free(stusHead);
}
void tjRN(STU *stusHead)//统计区间人数60以下,[60~79],[80~89],[90及以上],返回数组
{
STU *stusHSave=stusHead;
int scnt=0,i,tj[SN][4];
for(i=0;i<SN;i++)
{
tj[i][0]=tj[i][1]=tj[i][2]=tj[i][3]=0;
printf(" 课程%d统计结果: ",i+1);
while(stusHead->next)
{
if(stusHead->next->scores[i]<60)
tj[i][0]++,printf("学号:%-5s 成绩:%3d不及格 ",stusHead->next->id,stusHead->next->scores[i]);
if(stusHead->next->scores[i]>=60 && stusHead->next->scores[i]<=79) tj[i][1]++;
if(stusHead->next->scores[i]>=80 && stusHead->next->scores[i]<=89) tj[i][2]++;
if(stusHead->next->scores[i]>=90) tj[i][3]++;
if(i==0) scnt++;
stusHead=stusHead->next;
}
printf("不及格人数共计:%d ",tj[i][0]);
printf("60-80分的人数为:%d,占比:%.0f%% ",tj[i][1],tj[i][1]*1.0/scnt*100);
printf("80-90分的人数为:%d,占比:%.0f%% ",tj[i][2],tj[i][2]*1.0/scnt*100);
printf("90分以上的人数为:%d,占比:%.0f%% ",tj[i][3],tj[i][3]*1.0/scnt*100);
stusHead=stusHSave;
}
}
void showBySc(STU *stusHead)
{
float avg[SN];
int i,sum[SN]={0},max[SN]={0},min[SN]={0},sCNT=0;
STU *stusHSave=stusHead;
printf(" ");
for(i=0;i<SN;i++)
{
if(stusHead->next)
max[i]=min[i]=stusHead->next->scores[i];
while(stusHead->next)
{
if(stusHead->next->scores[i]>max[i])
max[i]=stusHead->next->scores[i];
else if(stusHead->next->scores[i]<min[i])
min[i]=stusHead->next->scores[i];
sum[i]+=stusHead->next->scores[i];
sCNT++;
stusHead=stusHead->next;
}
avg[i]=sum[i]*1.0/sCNT;
stusHead=stusHSave;
}
for(i=0;i<SN;i++)
printf("课程%d的平均分为%.1f,最高分为%d,最低分为%d ",i+1,avg[i],max[i],min[i]);
printf(" ");
}
void showById(STU *stusHead)
{
int i;
printf(" ");
while(stusHead->next)
{
printf("学号:%-5s的成绩分别为:",stusHead->next->id);
for(i=0;i<SN;i++)
printf("%3d ",stusHead->next->scores[i]);
printf(" ");
stusHead=stusHead->next;
}
}
STU *iputCStus()
{
int i;
char c;
STU *stusHead=NULL,*stuNew=NULL,*stuTail=NULL;
stusHead=(STU *)malloc(sizeof(STU));
if(!stusHead) return NULL;
stusHead->next=NULL;
while(1)
{
stuNew=(STU *)malloc(sizeof(STU));
if(!stuNew)
{
freeSList(stusHead);
return NULL;
}
stuNew->next=NULL;
printf("请输入学生学号:"),scanf("%s",stuNew->id);
printf("请输入学生姓名:"),scanf("%s",stuNew->name);
for(i=0;i<SN;i++)
printf("请输入学科%d成绩:",i+1),scanf("%d",&stuNew->scores[i]);
if(stusHead->next==NULL)
stusHead->next=stuNew;
else
stuTail->next=stuNew;
stuTail=stuNew;
getchar();
c=0;
while(c!='Y' && c!='N')
printf(" 是否继续录入?Y/N "),c=getchar();
printf(" ");
if(c=='N')
break;
}
return stusHead;
}
D. 计算机二级c语言考试的题型有哪些以及相应的分值是多少
考试形式及分值:
笔试:选择(70分)填空(30分)
机试:改错(30分)填空(30分)程序(40分)
E. 计算机二级c语言程序设计有哪些题型
全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。
单选题中1~10题为二级公共基础知识,单选题的11~40题是C语言的内容。
操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。
程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。
程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。
编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。
二级C语言程序设计考试涉及公共基础知识和C语言两块。公共基础知识内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。考10个单选每个1分。
C语言有基础知识(C语言概述、常量与变量、数据类型、运算符和表达式),编程三大结构(顺序结构、选择结构、循环结构),数组、函数和指针,其他内容(预处理命令、结构体和共用体、位运算、文件)四大部分内容。重点是第二、三部分。
F. c语言编程题目
Ps:1、很久没写过C语言了,希望没什么问题。
2、代码中将捐款0元的也当做是参与了捐款,如果要更符合需求一点的话请自行过滤。
G. C语言编程题目三道
#include<stdio.h>
#include<string.h>
voiddele(char*str,charc);
intmain()
{
charstr[50]={0},c;
gets(str);
scanf("%c",&c);
dele(str,c);
printf("%s
",str);
return0;
}
voiddele(char*str,charc)
{
intlen=strlen(str),i,j;
for(i=0;i<len;i++)
{
if(str[i]==c)
{
for(j=i;j<len-1;j++)
{
str[j]=str[j+1];
}
str[len-1]=0;
len--;
i--;
}
}
}
H. 计算机二级C语言都有哪些题型
全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。
单选题中1~10题为二级公共基础知识,考试内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。单选题的11~40题是C语言的内容。
操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。
程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。程序填空题以实际填写的内容为评分依据,填写正确一个空,给一个空的分。如果是2个空,每个空就是9分;如果是3个空每个空是6分。
程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。与程序填空类似,2处错误的话,每处9分,3处错误的话,每处6分。程序改错题的题目会提示每一处错误所在的行,在那一行的上一行有********found********标识。
编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。因此,大多数情况下,编程题要么就是得24分满分,要么就是0分。
I. C语言编程题目
J. c语言编程题目及答案
#include <stdio.h>
#include <math.h>
void main(void)
{
double a;
double b;
double c;/* 以上三个变量分别对应三边 */
double sin_c;/* c边对应角的正玄值 */
double cos_c;/*c边对应角的余玄值*/
double cos_a;
double area; /* 三角形的面积 */
printf("输入a,b,c:");
scanf("%lf, %lf, %lf", &a, &b, &c);
if(((a+b)>c) && (a-b)<c)
{
printf("三边能够成三角形\n.");
cos_c = (a*a + b*b -c*c)/(2*a*b);
cos_a = (b*b + c*c - a*a)/(2*b*c);
if ((cos_c > 0) && (cos_a >0))
{
printf("三角形是锐角三角形。\n");
}
else if ((cos_c < 0) || (cos_a < 0))
{
printf("三角形是钝角三角形\n");
}
else
{
printf("三角形是直角三角形\n");
}
sin_c = sqrt(1- cos_c*cos_c);
area = a*b*sin_c/2;
printf("三角形的面积是%f.\n",area);
}
else
{
printf("三边不能构成三角形\n");
}
}