- 相關(guān)推薦
浙江省計(jì)算機(jī)二級(jí)上機(jī)考試試題庫
2017年3月計(jì)算機(jī)等級(jí)考試就要開考了,同學(xué)們準(zhǔn)備好了嗎?下面跟yjbys小編一起來看看最新的計(jì)算機(jī)二級(jí)考試題吧!
1. 數(shù)字處理(切割技術(shù))
1-1找Armstrong(水仙花)數(shù):371=3*3*3+7*7*7+1*1*1 【這是一個(gè)三位的自然數(shù),要點(diǎn)是三位分離】
#include
#include
void main()
{ int i,a,b,c;
for(i=100;i<=999;i++)
{ a=i/100;
_______1_______ // b=i0/10;
c=i;
if (________2________) // a*a*a+b*b*b+c*c*c = = i
printf("%d is a Armstrong number!n",i);
}
}
1-2輸入1個(gè)整數(shù)后,輸出該數(shù)的位數(shù)。(例:輸入3214則輸出4,輸入-23156則輸出5)!局鹞粍冸x】
#include
void main()
{ int n,k=0;
scanf("%d",&n);
while( _____1_____ ){ // n!=0
k++;
_____2_____; // n=n/10
}
printf("%dn",k);
}
1-3求輸入的整數(shù)各位數(shù)字之和,如輸入234則輸出9,輸入-312則輸出6!局鹞粍冸x】
#include
#include
void main()
{
int n,s=0;
scanf("%d",&n);
______ 1 ______ // if (n<0) n=-n;【符號(hào)預(yù)處理】
while(n!=0) {
______ 2 ______ // s+=n;
n=n/10;
}
printf("%dn",s);
}
1-4調(diào)用函數(shù)f,將一個(gè)整數(shù)首尾倒置。例如:若程序輸入12345,則輸出54321;若程序輸入-34567,則輸出-76543。【逐位剝離+逆置技術(shù)y=y*10+m 】
#include
#include
long f(long n)
{ long m,y=0; m=fabs(n);
while(m!=0) {
y=y*10+m;
____1____ // m=m/10 ;
}
if(n>=0) return y;
else _____2_____ // return -y ;
}
void main()
{
printf("%ldt",f(12345)); printf("%ldn",f(-34567));
}
1-5尋找并輸出11至999之間的數(shù)m,它滿足m、m*m、m*m*m均為回文數(shù)。說明:所謂回文數(shù)是指各位數(shù)字左右對(duì)稱,例如121、676、94249等。滿足上述條件的數(shù)如m=11,m^2=121,m^3=1331皆為回文數(shù)。
請(qǐng)編制函數(shù)int JSValue(long m)實(shí)現(xiàn)此功能,如果是回文數(shù),則函數(shù)返回1,反之則返回0。最后把結(jié)果寫入到考生文件夾中Paper子文件夾下的新建文件Design2.dat!颈绢}目的算法與 1-4題相同】
#include
#include
#include
int JSValue(long m)
{
long i,n;
n=m; i=0; // i中存放的是m的倒置數(shù)
while(n>0)
{ i=i*10+n; n=n/10; }
if (m = = i) return 1;
else return 0;
}
void main()
{
FILE *p;long m;
p=fopen("design.dat","w");
for(m=11;m<1000;m++)
{ if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m))
fprintf(p,"%ld ",m); }
fclose(p); }
2. 字符串操作(特別,單字符刪除的兩種算法)
2-1輸入一個(gè)小寫字母,將字母循環(huán)后移5個(gè)位置后輸出。例如:"a"變成"f","w"變成"b"。
#include
void main()
{ char c;
c=getchar();
if(______1______) // c>='a'&&c<='u'
c=c+5;
else
if (c>='v' && c<='z')
______2______ // c=(c-'a'+5)&+'a'; 或 c=c-21; 或 c=c+5-26;
putchar(c);
}
2-2輸入一個(gè)字符串,將組成字符串的所有字符先按順序存放到字符串t中,再將字符串中的字符按逆序連接到字符串t后面。例如:輸入"ABCD",則字符串t為"ABCDDCBA"。PP2
#include
#include
void fun(char *s,char *t)
{ int i,sl;
sl=strlen(s);
for(i=0;i
t[i]=s[i];
for(i=0;i
t[sl+i]=s[sl-i]; // t[sl+i]=s[sl-1-i];
t[sl]=" "; // t[2*sl]=’ ’;
}
void main()
{ char s[100],t[100];
scanf("%s",s);
fun(s,t);
printf("%s",t);
}
2-3設(shè)計(jì)程序:計(jì)算字符串s中每個(gè)字符的權(quán)重值,所謂權(quán)重值就是字符在字符串中的位置值與該字符的ASCII碼值的乘積。位置值從1開始依此遞增。將每個(gè)字符的權(quán)重值,以格式"%d "寫入到源程序目錄中Paper子目錄下的新建文件design.dat中。
#include
#include
void main()
{ FILE *p; int i,w;
char *s="we45*&y3r#$1";
p=fopen("design.dat","w");
for (i=0;s[i]!=' ';i++)
{ w=(i+1)*s[i];
fprintf( p,"%d ",w);
}
fclose(p);
}
2-4調(diào)用find函數(shù)在輸入的字符串中查找是否出現(xiàn)"the"這個(gè)單詞。如果查到返回出現(xiàn)的次數(shù),如果未找到返回0!颈绢}解在判斷源串里當(dāng)前連續(xù)三個(gè)字符是否為"the"這個(gè)單詞采用了查找算法】
#include
int find(char *str)
{ char *fstr="the";
int i=0,j,n=0;
while (str[i]!=' ') 【注:while (str[i+2]!=' ') 更佳】
{
for(______1______) // j=0; j<3; j++
if (str[j+i]!=fstr[j]) break;
if (______2______) n++; // j>=3 或者 j = = 3
i++;
}
return n;
}
void main()
{ char a[80];
gets(a);
printf("%d",find(a));
}
【注:以下為單字符刪除。出現(xiàn)兩種算法。一是使用strcpy做子串覆蓋,二是逐個(gè)保留新串的字符】
2-5調(diào)用函數(shù)f,從字符串中刪除所有的數(shù)字字符。
#include
#include
#include
void f(char *s)
{ int i=0;
while(s[i]!=' '){
if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy
___2___ i++;} // else
}
void main()
{ char str[80];
gets(str); f(str); puts(str);
}
2-6將字符串s中所有的字符'c'刪除。
#include
void main()
{ char s[80];
int i,j;
gets(s);
for(i=j=0; ______1______; i++) // s[i] != ' '
if(s[i] != 'c')
{ s[j]=s[i];
______2______ // j++;
}
s[j]=' ';
puts(s);
}
2-7輸入一個(gè)字符串,將組成字符串的所有非英文字母的字符刪除后輸出。
#include
#include
void main()
{ char str[256];
int i,j,k=0,n;
gets(str);
n=strlen(str);
for(i=0;i
if (tolower(str[i])<'a' || tolower(str[i])>'z') // if (tolower(str[i])>='a' && tolower(str[i])<='z')
{
str[n]=str[i]; n++; // str[k]=str[i]; k++;
}
str[k]=' ';
printf("%sn",str);
3. 最大(小)值
3-1運(yùn)行時(shí)輸入10個(gè)數(shù),然后分別輸出其中的最大值、最小值。PP11
#include
void main()
{ float x,max,min; int i;
for(i=0;i<=10;i++) { // for(i=1; i<=10; i++) {
scanf("%f",&x);
if(i=1) { max=x;min=x;} // if(i==1) { max=x;min=x;}
if(x>max) max=x;
if(x
}
printf("%f,%fn",max,min);
}
3-2 對(duì)x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。P3
#include
#include
#define f(x) x*x-5*x+sin(x)
void main()
{ int x; float max;
______1______ // max=f(1);
for(x=2;x<=10;x++)
______2______ // if (f(x)>max) max=f(x);
printf("%fn",max);
}
3-3對(duì)x=1,2,…10,求函數(shù)f(x)=x-10*cos(x)-5*sin(x)的最大值,并將該數(shù)以格式".3f"寫入到考生文件夾中Paper子文件夾下的新建文件Design1.dat。
#include
#include
void main()
{ FILE *p; float f(float),max,x;
int i; max=f(1);
for (i=2;i<=10;i++)
{ x=f(i);
if (max
}
p=fopen("Design1.dat","w");
fprintf(p,"%.3f",max);
fclose(p);
}
float f(float x)
{ float t;
t=x-10*cos(x)-5*sin(x);
return t;
}
3-4 z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值為區(qū)間[1,6]的整數(shù),找出使z取最小值的x1、y1,并將x1、y1以格式"%d,%d"寫入到考生文件夾中Paper子文件夾下的新建文件Design2.dat。P6
【浙江省計(jì)算機(jī)二級(jí)上機(jī)考試試題庫】相關(guān)文章:
計(jì)算機(jī)二級(jí)C語言考試上機(jī)沖刺試題及答案08-19
2017計(jì)算機(jī)二級(jí)上機(jī)考試中的注意事項(xiàng)08-26
計(jì)算機(jī)二級(jí)VB上機(jī)試題及答案09-04
計(jì)算機(jī)等級(jí)考試上機(jī)應(yīng)試技巧06-10
2016年全國(guó)計(jì)算機(jī)二級(jí)vb考試題庫及答案08-22
2017年計(jì)算機(jī)二級(jí)考試題庫「選擇題」08-29