當前位置:首頁 » 編程語言 » c語言出題

c語言出題

發布時間: 2022-08-02 09:10:32

㈠ 用c語言寫一個 小學生口算出題系統

一、設計的流程:

1. 主界面設計,選擇練習或測試,按ESC結束程序。
2. 題型選擇界面設計,選擇加、減、乘、除或混合運算,按ESC返回主界面。
3. 系統隨機出題,運算數及結果均在100以內,乘、除法應能整除,顯示算式。
4. 練習時,系統隨機出題,鍵入結果,正確和錯誤均有提示,出錯時允許再輸入,最多三次機會,若還不正確,給出答案。繼續出題,按ESC,顯示總題數,正確數和正確率。
5. 測試時,系統自動出10道題,每題只給一次機會,每題10分,統計得分。結束後,給出總分,顯示各題的對錯信息,錯誤的給出答案。中間按ESC鍵結束。顯示已作題的對錯信息,錯誤的給出答案,不顯示得分,按任意鍵返回題型選擇界面。
相關知識:按鍵操作、數組、指針、結構體等

二、常式:

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
voidmain()
{
inta[10],b[10],d[10],c[10],num=0,result,add=0;
floatval;
charfa[5]={'+','-','*','/'};

/*出10道題*/
while(1)
{
srand((unsigned)time(NULL));
d[num]=abs(rand())%4;/*保證出題演算法的隨機性*/
while(1)/*保證出題成功*/
{
c[num]=-1;
a[num]=abs(rand())%100;
b[num]=abs(rand())%100;
if(d[num]==0)c[num]=a[num]+b[num];
elseif(d[num]==1)c[num]=a[num]-b[num];
elseif(d[num]==2)c[num]=a[num]*b[num];
elseif(d[num]==3)
{
if(b[num]>0)val=1.0*a[num]/b[num];
elseval=-1;
}
if(d[num]<=2)
{
if(c[num]>=0&&c[num]<=100)break;
}
else
{
if(a[num]==int(val)*b[num]&&val>=0)
{c[num]=val;break;}
}
}
num++;
if(num==10)break;
}
/*回答*/
num=0;
while(1)
{
printf("%d%c%d=",a[num],fa[d[num]],b[num]);
scanf("%d",&result);
if(result==c[num])
{
printf("回答正確! ");
add+=10;
}
else
printf("錯誤,正確答案:%d ",c[num]);
num++;
if(num==10)break;
}
printf(" 得分:%d ",add);
getch();
}

㈡ 用c語言編程怎樣持續出算術題

/*************************************************************
*
*加減乘除自動出題,並檢驗輸入結果是否正確
*a + b, a - b, a*b,a/b
*
**************************************************************/

#include<stdio.h>
#include<stdlib.h>

#define MAX 100 /*數據a,b最大值*/
#define N 4

void main(void)
{
int flag = 1;

float a = 0, b = 0, r = 0;
int i = 0;

while(flag)
{
a = (float)(rand()%MAX);/*隨即產生a*/
b = (float)(rand()%MAX);/*隨即產生b*/
i = rand()%N;/*隨即產生符號,0加 1減 2乘 3除*/

switch(i)
{
case 0 : /*加法*/
printf("\n %.1f + %.1f = ", a,b);
scanf("%f", &r);
if(r == (a + b))
{
printf("\nRight!");
}
else
{
printf("\nWrong! %.1f + %.1f = %.1f",a, b, a + b);
}
break;

case 1 : /*減法*/
printf("\n %.1f - %.1f = ", a,b);
scanf("%f", &r);
if(r == (a - b))
{
printf("\nRight!");
}
else
{
printf("\nWrong! %.1f - %.1f = %.1f",a, b, a - b);
}
break;

case 2 : /*乘法*/
printf("\n %.1f * %.1f = ", a,b);
scanf("%f", &r);
if(r == (a * b))
{
printf("\nRight!");
}
else
{
printf("\nWrong! %.1f * %.1f = %.1f",a, b, a * b);
}
break;

case 3 : /*除法*/
printf("\n %.1f / %.1f = ", a,b);
scanf("%f", &r);
if(r == (a / b))
{
printf("\nRight!");
}
else
{
printf("\nWrong! %.1f / %.1f = %.1f",a, b, a / b);
}
break;

default: break;

}

/*繼續輸入1,退出輸入0*/
printf("\nContinue ? 1/0 :");
scanf("%d", &flag);

}

}

㈢ c語言,出題程序

main()
{
int a,b,c;
char s;
scanf("%d%d",&a,&b);
getchar();
scanf("%c",&s);
if(s=='+')c=a+b;
else if(s=="-")c=a-b;
else c=-1;
if(c>=0)
printf("%d%c%d=%d\n",a,s,b,c);
else printf("你的輸入有錯誤!\n");
}
有什麼問題請留言。

㈣ 計算機二級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分。

㈤ C語言選擇題

D 數組名即為頭指針,指向a,後移三位,指向D,輸出DEF。
B cpy 意為 。
C scanf("格式",參數)。參數里沒有數組的概念。數組退化為指針,即數組名。
D 數組以0開始。
B 字元串處理函數遇到字元串結束符'\0'結束。計算的字元串內容為'\t' 'v' '\\'。長度為3
B 數組初始化,從0位開始,依次賦值。
B i = 5是最後一次循環。一共循環6次。
D 數組初始化,不解釋。
B 參數里沒有數組的概念。數組退化為指針,即數組名。
C 參數為指針,不解釋。

㈥ c語言編程、一個自動出題系統

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <WINDOWS.H>
#include <MATH.H>
void main()
{
int sign=1;
int totalscore=0;
int num=1;
int accurate =0 ;
int answer=0;
int rightanswer=0;
while(totalscore<100)
{
srand(unsigned(time(NULL)));
int a= 10+rand()%89;
int b = 10+rand()%89;
if (a<b)
{
int temp;
temp = a;
a=b;
b=temp;
}
printf("%d %c %d = ? \n",a,sign==1?'+':'-',b);

rightanswer = a+sign*b;
printf("input answer: ");
scanf("%d",&answer);
if (answer == rightanswer)
{
printf("\nanswer right \n");
totalscore+=2;
accurate++;
}
else
{
printf("\nanswer error! please input again \n");
scanf("%d",&answer);
if (answer == rightanswer)
{
printf("\nanswer right \n");
totalscore+=1;
accurate++;
}
}
printf("score : %d \n",totalscore);
num++;
sign=-sign;
Sleep(100);
}
printf("----------------------------\n");
printf("Total Score \t %d\n",totalscore);
printf("Accuracy Rate \t %0.2f%\n ",1.0*accurate/num);
}

//簡單的寫了一個,也沒有注意結構,但是可以實現功能。僅供參考。

㈦ C語言如何實現從指定題庫里抽取題目,實現隨機出題

比如現在有100道題,要抽10道題。

  1. 先建立一個試題索引數組,idxarr = {0,1,2,...,99}

  2. 然後用隨機數生成函數rand(),生成一個0到99的隨機數,把索引數組裡面該索引的值與數組中最後一個值調換,比如生成隨機數為2,則修改索引數組為idxarr={0,1,99,3,4,...,98,2}

  3. 然後再生成一個0到98的隨機數,把索引數組裡面該索引的值與數組中倒數第二個值調換,比如這次生成的隨機數是4,則修改索引數組為idxarr={0,1,99,3,98,5,...,97,4,2}

  4. 以此類推...執行10次,最後索引數組裡面最後十個裡面的值,就是抽出的試題索引號

    有啥不明白的,可以再問我

㈧ c語言題目

上面回答的答案有錯誤:
17.D 非法的是5e2.5,0e0是正確的。例如:ien的意思就是i乘以10的n次方,因此可以有0乘以10的0次方,但不能5乘以10的2.5次方,n要為整數
21.理解就好,忽略標點錯誤、變數未定義等這種問題的話就是C 死循環,否則選D,while(1<=x<=2)這里讓人費解,這種代碼一般都是程序表達式與數學表達式沒有分清而用錯的情況下寫出來的,但不是語法錯誤,運行不報錯,自己編程中要重視這類,因為出錯後很難查找,while(1<=x<=2)這句話的意思實際上相當於1<=x 執行後 為0 或 1,然後是 0<=2 或者1<=2 恆為真,也就是相當於while(true)了,實際結果是列印10個*後列印出一個?,之後就一直列印*
22.沒正確答案,有問題,實際結果應該是18,023是八進制,轉換後是19,--x,先減1再列印,就是18了。

當然,如果是考試的話21題就選D吧,畢竟那程序肯定是運行不過的,但是總感覺這題的知識點在while那裡,如果非那麼較真,那所有程序如果不改動都不能通過,因為沒頭文件和主函數嘛,呵呵,學到知識是最終目的,希望回答對你有幫助
CDCCD 21.自己理解了就好 22.? 23.A 24.D

㈨ 用C語言實現一個小學生口算及自測系統,實現自動出題,根據答題情況評分並記載入檔案,並能根據成績進行排

#include <stdio.h>

#include <stdlib.h>

#include <time.h>


//產生 [a,b] 區間的隨機數

#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a))


//產生 1-20 的整數,如要改變算術范圍,則修改這個宏的參數即可

#define GEN_VALUE() RANDOM(1, 20)


int main()

{

int v1, v2, t, r, a;

char op, ops[] = { '+', '-', '*', '/' };


srand( (unsigned)time(NULL) ); //用當前時間初始化隨機數種子


printf( "請答題 Ctrl+C 結束... " );

while(1)

{

v1 = GEN_VALUE(); //隨機生成第1個算數

v2 = GEN_VALUE(); //隨機生成第2個算數

op = ops[ RANDOM(0,3) ]; //隨機決定是哪個運算符


//保證第1個算數大於第2個算數,如不需要,則把這個判斷刪除即可

if( v1<v2 )

{

t = v1;

v1 = v2;

v2 = t;

}


//如果運算符為除法,且v1不能被v2整除則重新生成題目

if( op=='/' && v1%v2!=0 )

continue;

//計算正確的結果

switch(op)

{

case '+': a=(float)v1+(float)v2; break;

case '-': a=(float)v1-(float)v2; break;

case '*': a=(float)v1*(float)v2; break;

case '/': a=(float)v1/(float)v2; break;

}


//輸出算式

printf( "%d%c%d=", v1, op, v2 );


//等待輸入結果

scanf( "%d", &r );


if( r == a )

printf( " 答對嘍! " );

else

printf( " 答錯嘍!正確答案是:%d ", a );

}

}


熱點內容
電腦伺服器詳細介紹圖 發布:2025-01-23 12:03:42 瀏覽:155
社保查詢密碼是什麼東西 發布:2025-01-23 12:03:35 瀏覽:63
御龍在天腳本輔助 發布:2025-01-23 11:57:16 瀏覽:886
我的世界電腦版伺服器號碼 發布:2025-01-23 11:57:14 瀏覽:980
小科編程 發布:2025-01-23 11:48:55 瀏覽:673
安卓手機如何禁止未知軟體安裝 發布:2025-01-23 11:47:31 瀏覽:690
腳本我是一 發布:2025-01-23 11:44:27 瀏覽:642
安卓的哈靈麻將哪裡下 發布:2025-01-23 11:26:17 瀏覽:230
全本免費閱讀器在哪緩存 發布:2025-01-23 11:14:54 瀏覽:440
傳輸數據加密 發布:2025-01-23 11:03:20 瀏覽:256