c语言素数个数_C语言试题及答案
試題分享來啦!!
C語言試題
新思路 2020年秋季大一招新機試試題
一、選擇題(每題 5 分,共 20 分)
1.以下說法正確的是( )
A._9cpp 是正確的變量名?
B. k=++n 與 k=n,n=n+1 完全等價?
C.程序在執行了 int a=1,*b=&a,**c=&b;語句后,**c 的值是變量 a 的地址?
D.判斷字符串 a 和 b 是否相等,應當使用 if(strcpy(a,b))
2. 若要用 fopen 函數打開一個新的二進制文件,該文件要即能讀也要能寫,則文件方式字 符串應是( )
A. “rb+” B. “w+” C. “wb+” D. “rb”?
3. 若 int i=10;執行下列程序后,變量 i 的正確結果是( )?
switch ( i ){ case 9: i+=1; case 10:i+=1; case 11: i+=1; default :i+=1;}A、13 B、12 C、11 D、10?
4. 以下對結構體中成員 major 的引用有語法錯誤的是( )?
struct person{ int name; int major;}per1,*p;A. per1->major?
B. person.major?
C. p->major?
D. struct person.major
二、填空題(每題 5 分,共 20 分)
有一分段函數如下,在不使用條件判斷語句前提下,輸入 x,輸出 y(一共兩個空)
2. 下面程序的功能是將一個字符串 str 的內容顛倒過來,現已給出函數的部分代碼,請補充完整。(一共兩個空)
void func(){ int i, j; char k; char str[]={"12345678"}; for(i=0, j=strlen(str)-1; ________; i++,j--) { k=str[i]; ____________; str[j]=k;} printf("\n%s",str);}3.kevin 學長口渴了,要喝 20 升水(大約 20000 立方厘米)才能解渴,但現在只有一個深 h 厘米,底面半徑為 r 厘米的小圓桶(h 和 r 都是整數)。問 kevin 至少要喝多少桶水才會解渴。(一共兩個空) 要求:輸入單位都是厘米,輸出一個整數表示至少要喝水的桶數
#includeconst double PI=3.14159;int main(){ int h, r,n; double v, a; scanf("%d%d", &h, &r); v = _______ if(v<1e-6) { printf("∞"); return 0; } a = 20000.0/v; n = _________ printf("%d",n); return 0;}4. 下面是一個輸出素數的函數,功能是輸出 2 到 num 的素數,請完成下列空缺的部分
void print_mynum(int num){ int i,j,flag; for(i=2,flag=0;i<=num;_________) { for(j=2;j<=sqrt(i);j++) { if(i%j==0) { flag=1; break; } } if(______) { printf("%d\n",i); } }}三、程序設計題(每題 20 分,共 60 分)
1. 設計一個程序?
要求:?
輸入:正數 n
輸出:{1,...,n}的所有子集的個數。例如,輸入3時,輸出8例如,輸入3.5時,輸出16(四舍五入)
2. 設計一個程序:判斷一個n位整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(0
示例 1: 輸入: 121 輸出: true?
示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀,為-121。從右向左讀,為121- 。因此它不是一個回文數。?
示例 3: 輸入: 10 輸出: false 解釋: 從右向左讀, 為 01 。因此它不是一個回文數。
3.王小紅畢業在阿里當碼農,年薪N萬,他希望在上海湯臣一品買一套60平米的房子,現 在價格是1200萬,假設房價以每年百分之K增長,并且他未來年薪不變,且不吃不喝,不用交稅,每年所得N萬全都積攢來,問第幾年能夠買下這套房子(第一年房價 1200萬,收入N萬)
比如:輸入年薪 30 萬,房價增長率 0 個點 輸出 40 年(主要把 40 輸出)來輸入年薪 60 萬,房價增長率 1.5 個點 輸出 33 年
附加題:招新之不想改題(20 分)
小明C語言學的非常好,一天老師交給它一個任務,把一個input文檔進行數據分類,在這個文檔中會有學生的班級信息,成績信息。而小明需要做的是?
1.每個班級一個成績文檔?
2.學生信息之后附上總成績?
提示:文檔中每一列的數據分別代表 班級 語文 數學 英語 大家可以不用在新的文件中加這些信息,以上兩點,按點給分。
文檔大概像這樣。?
第一列是班級信息,后面四列都是成績信息。?
操作之后的文件大概是這樣的。
最后一列是成績總和
C語言答案
一、選擇
1-4 A C A ABD
二、填空//很多都行
1.(第一空2分,第二空3分)?
scanf("%d",&x);?
(x<0)?(y=-x):(y=x*x);//或者(x<0)&&(y=-x)||(y=x*x);只要能實現功能就行。
2.(第一空3分,第二空2分)?
i
str[i]=str[j]
3.(第一空 2 分,第二空 2 分,分號 1 分) PI*h*r*r;//注意分號?
(int)a+1;//注意分號,不可能剛好除盡,因為有 PI;?
4.(第一空 3 分,第二空 2 分)?
i++,flag=0//可以交換順序?
!flag?
三、程序題
1.
#include#includeint main() { double i; scanf("%lf",&i); if(i-(int)i>=0.5) { i++; } if(i>40) { printf("2^%.0lf",i); return 0; }//防溢出 printf("%.0lf\n",pow(2,(int)i)); return 0;}2.
#include#includeconst char* isPalindrome(int x){ if(x<0) return "false"; long y=0; int temp=x; while(temp!=0){ y=y*10+temp%10; temp/=10; } if(y==x) return "true"; return "false";}int main() { int num; scanf("%d",&num); printf(isPalindrome(num)); }3.
#include;void is_buy(double rate,double money){ printf("rate:%lf\n",rate); double this_year=0,next_year=0; double all_price=1200; double all_money=0; int year_num=0; while(this_year>=next_year) { year_num++; all_price*=(1+rate); all_money+=money; if(all_price<=all_money) { printf("YES THIS %d year",year_num); return 0; } else { this_year=all_price-all_money; next_year=all_price*(1+rate)-all_money-money; } } printf("NO"); return 0;}int main(){ double rate,money; printf("輸入年薪:"); scanf("%lf",&money); printf("輸入增長率:"); scanf("%lf",&rate); is_buy(rate/100,money); return 0;}四、附加題
#include #include #include struct SC{char class_num[7];int scores[4]; /*各科成績bai*/int total_sc; /*總成績*/};int main(){ FILE *fp_in,*fp_out;//文件指針 struct SC sc;//一個結構體 int i;//要用到的循環變量 fp_in = fopen("input.txt","r"); /*打開輸du入文件*/ if(!fp_in)//如果沒打開 { printf("Can't Open the file std0001.txt\n"); exit(1); } printf("即將計入循環\n"); while(!feof(fp_in)) /*文件尚為讀完*/ { fscanf(fp_in,"%s %d %d %d %d",sc.class_num,&sc.scores[0],&sc.scores[1],&sc.scores[2],&sc.scores[3]);//讀取數據 sc.total_sc = 0;//總和初始化為0,也可叫做覆蓋上一次的數據 for(i=0;i<4;i++) /*計算總成績*/ { sc.total_sc += sc.scores[i]; } char save_str[7];//班級號 strcpy(save_str,sc.class_num);//復制 if(strlen(sc.class_num)>=5)//異常處理,班級號不會超過這5位數 { break; } fp_out = fopen(strcat(sc.class_num,".txt"),"a+");//追加模式打開文件 if(!fp_out)//如果文件沒有打開,就放棄這條數據 { printf("Can not open the txt"); fclose(fp_out); system("pause"); continue; } fprintf(fp_out,"%s %d %d %d %d %d\n",save_str,sc.scores[0],sc.scores[1],sc.scores[2],sc.scores[3],sc.total_sc);//輸出到指定文件 } fclose(fp_in);//關閉文件指針 fclose(fp_out);//關閉文件指針 exit(0); //這個exit(0);換成return 0; 也不會有問題,但是最后都會調用exit(0);...啥也不寫也是這樣。}?本期內容:
排版:一個橙子
編輯:Jermery.X
審核:CPP組? 朱凱聞
總結
以上是生活随笔為你收集整理的c语言素数个数_C语言试题及答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python人脸识别框很小_人脸识别:从
- 下一篇: c语言判断一个已知的二叉树是否是二叉排序