当前位置:文档之家› 笔试模拟试题1

笔试模拟试题1

模拟试题(一)试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输入一个整数n(n>=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,……,数列的前两个数都是1,从第三项开始,每个数是前两个数之和。

运行示例:Enter n:101 123 5 813 21 34 55【程序】#include <stdio.h>main(){int count,i,n,x1,x2,x;printf("Enter n:");scanf("%d",&n);x1=x2=1;printf("%6d%6d",x1,x2);(1)for(i=1;(2);i++){x=x1+x2;printf("%6d",x);count++;if( (3) )printf("\n");(4)x2=x;}}【供选择的答案】(1) A、count=0; B、count=1;C、count=2;D、count=3;(2) A、i<n-2 B、i<=n-2C、i<n-1D、i<=n-1(3) A、count%6==0B、count%6=0C、count%6==1D、count%6=1(4) A、x2=x1; B、x1=x2;C、x1=x;D、x=x1;试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输入2个正数m和n(1<=m<n<=500),统计交输出m和n之间素数的个数以及这些素数的和,要求定义和调用函数prime(m)判断m是否为素数,当m为素数返回1,否则返回0。

素数就是只能被1和自身整除的正整,1不是素,2是素数。

【程序】#include <stdio.h>(5)int prime(int m){ int i,k;k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)(6)if(i>=k+1)return 1;elsereturn 0;}void main(){ int i,m,n,count=0;(7)printf("请输入2个正数m和n(1<=m<n<=500)\n");scanf("%d%d",&m,&n);for(i=m;i<=n;i++){if((8)){count++;sum+=i;}}printf("您输入的2个整数之间素数的个数是%d,这些素数的和为%ld\n",count,sum);}(5) A、#include "string.h"B、#include "stdlib.h"C、#include "math.h"D、#include "ctype.h"(6) A、continue B、continue;C、breakD、break;(7) A、sum=1B、long sum=0;C、sum=0D、int sum=1(8) A、prime(m)B、prime(i)C、prime(n)D、prime(i++)试题3(每小题3分,共12分)【程序说明】输入一个2*3的二维数组,找出最大值以及它的行下标和列下标,并输出该结果。

运行示例:Enter array(2*3):3 2 10 -9 6 -1max=a[0][2]=103 2 10-9 6 -1【程序】#include <stdio.h>main(){int col,row,i,j;int a[2][3];printf("Enter array(2*3):");for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);(9);row=0;for(i=0;i<2;i++)for(j=0;j<3;j++)if((10)){ (11)col=j;}printf("max=a[%d][%d]=%d\n",row,col,(12));for(i=0;i<2;i++){ for(j=0;j<3;j++)printf("%4d",a[i][j]);printf("\n"); }}【供选择的答案】(9) A、col=0;B、col=1;C、col=0D、col=1(10) A、a[i][j]>a[row][col]B、a[i][j]<a[row][col]C、a[i][j]==a[row][col]D、a[i][j]=a[row][col](11) A、row=j; B、row=i;C、row=j+1;D、row=i+1;(12) A、a[i][j]B、a[col] [row]C、a[row][col]D、a[j][i]试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】#include <stdio.h>main(){int op1,op2,res;char opertor;scanf ("%d",&op1);opertor=getchar();while(opertor!='='){scanf ("%d",&op2);switch(opertor){case '+':res=op1+op2;break;case '-':res=op1-op2;break;case '*':res=op1*op2;break;case '/':res=op1/op2;break;default:res=0;}op1=res;opertor=getchar();}printf("%d\n",res);}(13) 程序运行时,输入2*3-2=,输出(13) 。

A、3B、4C、5D、6(14) 程序运行时,输入15+2/3=,输出(14) 。

A、3B、4C、5D、6(15) 程序运行时,输入1+2*10-10/2=,输出(15) 。

A、7B、8C、9D、10(16) 程序运行时,输入1+3*5/2-7=,输出(16) 。

A、3B、4C、5D、6试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】#include <stdio.h>#define MAXLEN 80main(){int k=0,number=0;char str[MAXLEN];while((str[k]=getchar())!='#')k++;str[k]='\0';for(k=0;str[k]!='\0';k++)if(str[k]>='0'&& str[k]<='9'||str[k]=='A'||str[k]=='B')if(str[k]>='0'&& str[k]<='9')number=number*12+str[k]-'0';else if(str[k]=='A'||str[k]=='B')number=number*12+str[k]-'A'+10;else ;//第15行else break; //第16行printf("%d\n",number);}(17) 程序运行时,输入10#,输出(17) 。

A、12B、13C、5D、6(18) 程序运行时,输入1a0#,输出(18) 。

A、3B、4C、5D、1(19) 第16行改为“;”后,程序运行时,输入A*0#,输出(19) 。

A、100B、120C、9D、10(20) 第16行改为“else break;”删除第15行后,程序运行时,输入1b0#,输出(20) 。

A、3B、4C、12D、15试题6(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】#include <stdio.h>#include <string.h>main(){ char *s[2]={"****","****"};while(*s[1]!='\0'){printf("%s\n",s[0]+strlen(s[1])-1);s[1]++;}}(21) 程序运行时,第1行输出(21) 。

A、*B、**C、***D、****(22) 程序运行时,第2行输出(22) 。

A、*B、**C、***D、****(23) 程序运行时,第3行输出(23) 。

A、*B、**C、***D、****(24) 程序运行时,第4行输出(24) 。

A、*B、**C、***D、****试题7(28分)1、定义函数fact(n)计算n的阶乘:n!=1*2*3*……*n,函数的返回值类型是double。

2、定义函数cal(m,n)计算累加和:s=m+(m+1)+(m+2) ……+n,函数的返回值类型是double。

3、定义函数main(),输入整数n,计算并输出下列算式的值。

该算式中,每一项的分子是累加和,要求调用函数cal(m,n)计算累加和;每一项的分母是阶乘,要求调用函数fact(n)计算n!。

y=1+(1+2)/2!+(1+2+3)/3!+……+(1+2+3+……n)/n!。

相关主题