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");
}
}