- 相關(guān)推薦
2017年計(jì)算機(jī)二級(jí)C語言基礎(chǔ)考試試題
程序設(shè)計(jì)往往以某種 程序設(shè)計(jì)語言為工具,給出這種語言下的程序。程序設(shè)計(jì)過程應(yīng)當(dāng)包括 分析、 設(shè)計(jì)、 編碼、測(cè)試、排錯(cuò)等不同階段。下面是小編收集的計(jì)算機(jī)二級(jí)C語言基礎(chǔ)考試試題,希望大家認(rèn)真閱讀!
【程序1】
題目:求100之內(nèi)的素?cái)?shù)
1. 程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除, 則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。 [注意]leap清空。
2.程序源代碼:
#include
#include "math.h"
#define N 101
main()
{
int i,j,line,a[N];
for(i=2;ifor(i=2;ifor(j=i+1;j{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;}
printf("/n");
for(i=2,line=0;i{
if(a[i]!=0)
{printf("%5d",a[i]);
line++;}
if(line==10)
{printf("/n");
line=0;}
}
}
【程序2】
題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。
1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除, 則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。 [注意]leap清空。
2.程序源代碼:
#include "math.h"
void main()
{
int m,i,k,h=0,leap=1;
printf("/n");
for(m=101;m<=200;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0)
printf("/n");
}
leap=1;
}
printf("/nThe total is %d",h);
}
【程序3】
題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?
1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后
的結(jié)果滿足如下條件,即是結(jié)果。請(qǐng)看具體分析:
驗(yàn)證一個(gè)數(shù)完全平方數(shù)不用sqrt:
利用恒等式: 1+3+5+7+....+(2*n-1)=n^2//等差數(shù)列前n項(xiàng)和公式
n*(a1+an)/2
bool isSqrt(int n)
{
for(int i=1;n>0;i+=2) n-=i;
return 0 == n;
}
2.程序源代碼:
(1)
#include "math.h"
void main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x為加上100后開方后的結(jié)果*/
y=sqrt(i+268); /*y為再加上168后開方后的結(jié)果*/
if(x*x==i+100&&y*y==i+268)/*如果一個(gè)數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/
printf("/n%ld/n",i);
}
}
(2)
#include "stdio.h"
bool IsaFullSquare(int n)
{
for(int i=1;n>0;i=i+2)n-=i;
return n==0;
}
void main()
{
int n=1;
for(;n<10000;n++)
{
int num=n+100;
int n1=IsaFullSquare(num);
int n2=IsaFullSquare(num);
if(n1+n2==2)printf("the number is%d/n",n);
}
}
【程序4】
題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù) 本身。例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。[重點(diǎn)]分解各個(gè)位上的數(shù)
2.程序源代碼:
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出個(gè)位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("/n");
}
【程序5】
題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如6=1+2+3.編程 找出1000以內(nèi)的所有完數(shù)。
1. 程序分析:完數(shù)只是它的值等于它所有因子的和比如28=1+2+4+7+14;所以不要被誤導(dǎo)
2.程序源代碼:
#include
void main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i
{
if((j%i)==0)
{ n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu",j);
for(i=0;iprintf("%d,",k[i]);
printf("%d/n",k[n]);
}
}
}
【計(jì)算機(jī)二級(jí)C語言基礎(chǔ)考試試題】相關(guān)文章:
計(jì)算機(jī)二級(jí)C語言考試試題及答案03-08
計(jì)算機(jī)二級(jí)C語言考試上機(jī)沖刺試題及答案03-03
2017計(jì)算機(jī)二級(jí)c語言考試試題大全03-09
2017最新計(jì)算機(jī)二級(jí)C語言考試試題02-28
計(jì)算機(jī)等級(jí)考試二級(jí)C語言考試試題(帶答案)03-03
2017年計(jì)算機(jī)二級(jí)考試C語言練習(xí)試題03-08