当前位置:文档之家› C语言上机模拟题

C语言上机模拟题

C语言上机模拟题
C语言上机模拟题

1.按照计算机应用领域分类,学校使用的成绩管理系统属于_______。

A. 实时控制

B. 计算机辅助设计

C. 数据处理

D. 科学计算

参考答案:C

2.下面关于计算机系统的叙述中,完整的计算机系统通常是指______。

A. 计算机的硬件系统

B. 计算机上配置的操作系统

C. 计算机的软件系统

D. 由硬件系统和软件系统组成

参考答案:D

3.微型计算机的微处理芯片上集成的主要组件包括______。

A. 控制器和运算器

B. 内存和控制器

C. 控制器和存储器

D. 运算器和I/O接口

参考答案:A

4.Windows的对话框窗口不可以______。

A. 关闭

B. 移动

C. 任意改变大小

D. 最小化

参考答案:C

5.某用户在域名为https://www.doczj.com/doc/7a16796223.html,的邮件服务器上申请了一个账号,账号名为xing,那么该用户的电子邮件地址为______。

A. https://www.doczj.com/doc/7a16796223.html,@xing

B. https://www.doczj.com/doc/7a16796223.html,%xing

C. xing%https://www.doczj.com/doc/7a16796223.html,

D. xing@https://www.doczj.com/doc/7a16796223.html,

参考答案:D

6.下列对C语言程序的描述中,正确的是_______。

A. C语言程序总是从第一个定义的函数开始执行

B. C语言程序总是从最后一个定义的函数开始执行

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

参考答案:C

7.设有char ch='\\';,则变量ch包含______个字符。

A. 1

B. 2

C. 3

D. 4

参考答案:A

8.以下选项中合法的字符常量是____________。

A. '\101'

B. '\97'

C. '\xyz'

D. '\019'

参考答案:A

9.下面用户标识符中合法的是____________。

A. iPhone#

B. 13a

C. char

D. _int

参考答案:D

10.已知int c1=5,c2=2,c3;,则执行c3=c1/c2后,c3的值是_______。

A. 5

B. 2.5

C. 3

D. 2

参考答案:D

11.设有定义int b=0;,表达式_______与其它表达式的值不相同。

A. b+=1

B. b++

C. ++b

D. b+1

参考答案:B

12.执行语句int a=8;a+=a-=a*a;后,变量a的值是______。

A. -240

B. 64

C. 112

D. -112

参考答案:D

13.若a、i和j都是int型变量,则执行语句a=(i=4,j=16);后a的值为_______。

A. 4

B. 16

C. 20

D. 12

参考答案:B

14.已知int x=10;float y=20;double z=30;,则表达式(int)(x+y)-z的数据类型是______。

A. int

B. float

C. double

D. 无法确定

参考答案:C

15.下列运算符中优先级最高的是_______。

A. <

B. +

C. &&

D. ||

参考答案:B

16.C语言中基本数据类型包括_______。

A. 整型、实型、逻辑型

B. 整型、字符型、逻辑型

C. 整型、实型、字符型

D. 字符型、实型、逻辑型

参考答案:C

17.已知int a,b,c;,若有

scanf("a=%d,b=%d,c=%d",&a,&b,&c);,为使变量a的值为1,b的值为2,c的值为3,从键盘输入数据的正确形式是

_______。

A. 123

B. 1,2,3

C. a=1 b=2 c=3

D. a=1,b=2,c=3

参考答案:D

18.下列程序的输出结果是______。

#include

int x=3,y=5;

void main( )

{

int x=0;

x=x+y;

printf("%d",x);

}

A. 3

B. 4

C. 5

D. 8

参考答案:C

19.有定义int x=1,y=2,z=3;,执行下列程序段后,输出的结果是_______。

if(x>y) z=x;x=y;y=z;

printf("%d,%d,%d",x,y,z);

A. 1,2,3

B. 2,3,3

C. 2,3,1

D. 2,3,2

参考答案:B

20.执行以下程序段后,则输出的结果是______。int a=1;

switch(a)

{

case 1: printf("你好");

case 2: printf("再见"); break;

default : printf("晚安");

}

A. 你好

B. 再见

C. 晚安

D. 你好再见

参考答案:D

21.在C语言中,用_______表示逻辑真。

A. 1

B. 非0的数

C. 非1的数

D. 0

参考答案:A

22.若i为整型变量,则下列循环体执行次数是_______。for(i=2;i==0;) printf("%d\n",i--);

A. 2次

B. 1次

C. 0次

D. 无限次

参考答案:C

23.while(leap)和下列_______等价。

A. while (leap!=0)

B. while (5)

C. while (leap==0)

D. while (0)

参考答案:A

24.下列程序段中循环体语句_______。

int y=15;

printf("%d",--y);

do

{

printf("%d",--y);

}while(!y);

A. 一次也不执行

B. 执行一次

C. 有语法错误

D. 执行无限次

参考答案:B

25.在C语言中,表示结束本层循环的语句是_______。

A. extern语句

B. break语句

C. continue语句

D. end语句

参考答案:B

26.下列数组定义及初始化中,正确的是_______。

A. int a[]="string";

B. int a[5]={0, 1, 2, 3, 4, 5};

C. char a="string";

D. int a[]={0, 1, 2, 3, 4, 5};

参考答案:D

27.若有int a[ ]={1,2,3,4,5,6,7};char c1= 'b',c2= '2';,则下列表达式值不等于2的是______。

A. a[1]

B. 'd'-c1

C. a['3'-c2]

D. c2-0

参考答案:D

28.已知int a[3][2]={1,2,3,4,5,6};,则a[1][1]的值是_______。

A. 4

B. 5

C. 3

D. 2

29.若有定义int a[3][4];,则对数组元素引用正确是_______。

A. a[1][4]

B. a[1,3]

C. a(2)(1)

D. a[2][0]

参考答案:D参考答案:A

30.下列程序段的运行结果是_______。

char c[5]={'a','b','\0','c','\0'};

printf("%s",c);

A. 'a''b'

B. ab

C. ab c

D. ab\0c\0

参考答案:B

31.如果在程序中需要用到strcpy、strcat等库函数时,需要用#include包含_______头文件。

A. math.h

B. string.h

C. ctype.h

D. stdio.h

参考答案:B

32._______是正确的函数声明语句。

A. float func( int a, int b);

B. float func( int a, b );

C. double func( a, int b );

D. double func( a, b );

参考答案:A

33.C程序函数中的局部变量是指______。

A. 函数外部定义的变量

B. 函数体内定义的变量

C. 函数之间定义的变量

D. 函数之间定义的static类型变量

参考答案:B

34.若用数组名作为函数调用的实参,传递给形参的是_______。

A. 数组元素的个数

B. 数组第一个元素的值

C. 数组全部元素的值

D. 数组的首地址

参考答案:D

35.下列语句中,定义指针变量p的正确语句是_______。

A. int x,p=&x;

B. int x,*p=x;

C. int x,*p=&x;

D. int x,*p=*x;

参考答案:C

36.若有定义语句int a[5]={0,1,2,3,4},*p=a;,则不是对a数组元素的正确引用是____________。

A. a[p-a]

B. *(&a[2])

C. *p

D. *(*(a+2))

参考答案:D

37.若有int x[10],*p=x;,则*(p+5)表示______。

A. 数组元素x[5]的地址

B. 数组元素x[5]的值

C. 数组元素x[6]的地址

D. 数组元素x[6]的值

参考答案:B

38.设有预处理命令#define d 2和定义int a=10;long

b=20;char c='a';,则下列语句中错误的是_______。

A. a++;

B. b++;

C. c++;

D. d++;

参考答案:D

39.设有定义语句:

struct stu

{

int x;

float y;

}stutype;则下列的叙述不正确的是_______。

A. struct是定义结构体类型的关键字

B. struct stu是用户定义的结构体类型

C. x和y都是结构体成员

D. stutype是用户定义的结构体类型名

参考答案:D

40.以读写方式打开一个已有的二进制文件cct.bin,以下选项中正确的是______。

A. FILE *fp;fp=fopen("cct.bin","r");

B. FILE *fp;fp=fopen("cct.bin","w");

C. FILE *fp;fp=fopen("cct.bin","rb");

D. FILE *fp;fp=fopen("cct.bin","rb+");

题目:

在屏幕上输出以下图形(字符之间没有空格)。

#include

void main()

{

int i,j;

char ch;

for(i=0;i<5;i++)

{

j=0;

while(j<=5) /*$ERROR$*/

{

ch='A'+(i+j)%5;

printf("%d",ch);/*$ERROR$*/

j++;

}

printf("/n"); /*$ERROR$*/

}

}

$1$:j<5

$2$:printf("%c",ch);

$3$:printf("\n");

题目:

给定程序中规定输入的字符串全部为字母,fun函数的功能是:统计字符串中每个字母出现的次数(不区分大小写),并输出次数最多的字母(如果有多个相同,输出一个即可)。示例:输入字符串:dadbcdbabdb,对应的输出应为:b或d。#include

#include

void fun(char a[])

{

int b[26], i, n,max; /*数组b用于统计26个字母个数*/

for (i=0; i<26; i++)

a[i] = 0; /*$ERROR$*/

n= strlen(a);

for (i=0; i

if (a[i] >='a' && a[i]<='z')

b[a[i] - 'A']++; /*$ERROR$*/

else if( a[i] >='A' && a[i]<='Z' )

b[a[i] - 'A']++;

max = 0;

for (i=1; i<26; i++)

if (b[max] > b[i]) /*$ERROR$*/

max=i;

printf("出现次数最多的字符是: %c\n", max + 'a'); }

void main( )

{

char a[200];

printf("请输入一个待统计的字符串: ");

scanf("%s", a);

fun(a);

}

参考答案:

1|3:b[i]=0;

2|3:b[a[i]-'a']++;

3|3:if(b[max]

题目:

求满足下列条件的三位数之和。条件如下:

(1)各位数字只能从5、6、7、8中选;

(2)各位数字互不相同。

输出格式:

s=12345

参考程序一:

#include

void PRINT(long s)

{

FILE *out;

printf("s=%d\n",s);

if((out=fopen("result.dat","w+"))!=NULL)

fprintf(out,"s=%ld",s);

fclose(out);

}

void main()

{

/*考生在此设计程序*/

long s=0;

int a,b,c;

for (a=5;a<=8;a++)

for (b=5;b<=8;b++)

for (c=5;c<=8;c++)

if (a!=b &&a!=c&&c!=b) s+=100*a+10*b+c; PRINT(s);

}

参考程序二:

#include

void PRINT(long s)

{

FILE *out;

printf("s=%d\n",s);

if((out=fopen("result.dat","w+"))!=NULL) fprintf(out,"s=%ld",s);

fclose(out);

}

void main()

{

/*考生在此设计程序*/

long s=0;

int i,j,gw,sw,bw,v[6]={1,2,3,4,9,0};

for (i=567;i<=876;i++)

{

gw=i%10;

sw=i/10%10;

bw=i/100;

if(gw!=sw && gw!=bw && sw!=bw)

{

for(j=0;j<6;j++)

if(gw==v[j] || sw==v[j] || bw==v[j]) break;

if(j>=6) s=s+i;

}

}

PRINT(s);

}

参考程序三:

#include

void PRINT(long s)

{

FILE *out;

printf("s=%d\n",s);

if((out=fopen("result.dat","w+"))!=NULL) fprintf(out,"s=%ld",s);

fclose(out);

}

void main()

{

/*考生在此设计程序*/

long s=0;

int i,v[4]={5,6,7,8};

for (i=0;i<4;i++)

s=s+v[i]*111*6;

PRINT(s);

}

参考程序四:

#include

void PRINT(long s)

{

FILE *out;

printf("s=%d\n",s);

if((out=fopen("result.dat","w+"))!=NULL) {

fprintf(out,"s=%ld",s);

fclose(out);

}

}

void main()

{

/*考生在此设计程序*/

#define N 3

long s=0,t,v;

二级(C语言程序设计)上机题汇总

二级(C语言程序设计)上机题汇总 一、程序调试题 (一)程序填空 练习一: /*该程序功能:对x=1,2,。。。。。,10,f(x)=x*x*-5*x+sin(x)的最大值。*/ #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ____ max=f(1);____ for(x=2;x<=10;x++) ___if( max void swap(__int *pa, int *pb____) { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(__a>b___) swap(&a,&b); printf("%d,%d,%d",a,b,c); } 练习三: /*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/ #include

void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= __m%2___; m=m/2; } for(;j!=0;j--) printf("%d", ____bin[j-1]_ _____ ); } void main() { int n; scanf("%d",&n); Dec2Bin(n); } 练习四: /*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6*/ #include void f(int *a,int *m) { int i,j; for(i=0;i<*m;i++) if(a[i]<0) { for(j=i--;j<*m-1;j++) a[j]=a[j+1]; ___*m=*m-1;___ } } void main() { int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; _ f(x,&n);_____ for(i=0;i void main() { int i,j,s; for(i=6;i<=1000;i++) { ___s=1;___

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

C语言上机题库百科园第2章!南信大!

第二章 若有数学式3ae bc,则不正确的C语言表达式是() A.3*a*e/b*c B.a/b/c*e*3 C.3*a*e/b/c D.a*e/c/b*3 设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。 A.4 B.3 C.2 D.1 下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是() A.(x/2*2-x)==0 B.!(x%2) C.!(x%2==0) D.x%2==0 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.char B.double C.不确定 D.float 在C语言中,要求运算数必须是整型的运算符是( ) A.% B./ C.++ D.!= 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。 A.4

C.16 D.52 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A.必须为下划线 B.必须为字母 C.可以是字母、数字和下划线中的任意一种 D.必须为字母或下划线 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( ) A.不知道a的值,不能确定 B.0 C.2 D.1 判断字符型变量c1是否为数字字符的正确表达式为( ) A.(c1>='0')&&(c1<='9') B.(c1>=0)&&(c1<=9) C.('0'>=c1)||('9'<=c1) D.'0'<=c1<='9' 下面四个选项中,均是合法的用户标识符的选项是()。 A._123 temp INT B.A p_o do C.b-a goto int D.float lao _A 以下关于C语言数据类型使用的叙述中错误的是( ) A.若要处理如"人员工资"的相关数据,单精度类型 B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型 C.若要保存带有多位小数的数据,应使用双精度类型 D.若要准确无误差的表示自然数,应使用整数类型 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 A.7 B.8 C.6 D.2 下面正确的字符常量是()

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式: 26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a #include int main(void) { char c1,c2;

c语言上机题库 (1)

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 2、编写程序求无理数e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。

11、请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun用比较法对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 13、编写main程序调用函数fact求解从m个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m不能小于n,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 19、对任意输入的x,用下式计算并输出y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大

c语言上机考试训练题库及答案

上机考试习题集 1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。 #include "stdio.h" void main() { int score[5][3], i,j; float sum[5],average[5]; printf("请分别输入三个学生的成绩:\n"); for(i=0;i<5;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0; sum[i]+=score[i][j]; average[i]=sum[i]/5; } } for(i=0;i<5;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); } 2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。 #include #include double rounding(double x,int n); void main() { double x,x1; int n; printf("请输入一个浮点数:\n"); scanf("%lf",&x); printf("请输入给定的小数位:\n"); scanf("%d",&n); x1=rounding(x,n); printf("圆整后的数为:\n%.*lf\n",n,x1); } double rounding(double x,int n)

二级C语言上机编程题答题技巧

二级C语言上机编程题技巧 一、技巧的原理 首先使用这个技巧必须了解上机编程题的评分原理。以上机题的第5套编程题为例。二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出: 在考生文件夹下存在一个名为in.dat的文件。首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。然后使用fscanf 语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。将结果用fprintf语句输入到out.dat文件中。其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。

所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。 二、使用技巧的条件 当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。使用这个技巧必须具备两个条件: 1、编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面 含有in.dat文件。 2、编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。例如 本题:

它让我们实现实型数据保留两位小数,并对第三位进行四舍五入。那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。那么这种技巧就不能使用。 三、步骤 确定了这个技巧可以使用后,我们就可以开始操作了。一般分为以下几步: 1、建立out.dat文件 上面可以看到我们的考生文件夹中是没有out.dat这个文件的。所以我们需要自己新建。最好的方法就是打开编程题直接编译、链接、执行。这样将程序执行一遍后我们的考生文件夹里就自动生成了我们需要的out.dat文件。(注意:这里生成了out.dat 文件后就不要再运行我们的程序了,因为每运行一次程序就会将程序生成的答案写入out.dat文件中,这样即算我们改成了正确答案,你如果再次运行程序,就会将我们修改的正确结果覆盖掉。) 2、修改答案

计算机二级C语言上机题库复习小抄(最新校正,精美排版)

计算机二级C语言上机题库复习小抄 (最新校正,精美排版) 第一套 1.程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第一处struct student t; 第二处for(i=0;i0) 2程序修改 给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。 /**found**/ q=p+i; /**found**/ while(q>p) 3程序设计 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 int fun(STREC *a,STREC *b,int l,int h) {int i,j=0; for(i=0;i=1&&a[i].s<=h) b[j++]=a[i]; return j; } 第二套 1.程序填空 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 第一处free(q); 第二处q=p->next; 第三处q=q->next; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。 /**found**/ p=j; /**found**/ p=i; 3. 程序设计 请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套 1. 程序填空 函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 第一处for(i=0;idata==ch)return n; 第三处k=fun(head,ch); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#’结束输入。 /**found**/ for(i=0,t=0;p[i];i++) /**found**/ c[t]=?\0?; 3. 程序设计 请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *ss) { int i; for(i=1;i=?a?&&ss[i]<=?z?) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如:当形参n的值为10 的时,函数返回:9.6125588。 第一处s=0; 第二处for(i=1;i<=n;i++) 第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==?\0?) 3. 程序设计 请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为 3.14…。 double fun(double eps) { double s=1,t=1./3; int n=1; while(t>=eps) {s+=t;n++;t=t*n/(2.0*n+1) ;} return(s*2.0); } 第六套 1. 程序填空 给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。 第一处t[j]=s[i];j++; 第二处for(i=0;iscore[i]+=1; 第三处return a; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。 /**found**/ char *fun(char (*sq)[M]) /**found**/ return sp; 1

2020年全国计算机等级考试二级c语言上机精选题库(共80套)

2020年全国计算机等级考试二级c语言上机精选题库(共80套) 第1套试题 第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 4 fun(int t[][N], int n) { int i, sum; ___1___; for (i=0; i

第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include #include /********found********/ fun(int n) { double A = 1; int i; /********found********/ for(i=2;i #include void fun (int a, int b, long *c) { }

计算机二级考试C语言 101~105套上机题

第101套 1、程序填空 给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。 例如,有9个正整数:1 5 7 23 87 5 8 21 45,按升序排列时的中间数为:8 处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。得增行或删行,也不得更改程序的结构! #include #define N 9 int fun(int x[]) { int i,j,k,t,mid,b[N]; for(i=0;ib[j]) k=j; if(k != i ) { /**********found**********/ t=b[i]; b[i]=___1___; b[k]=t; } } /**********found**********/ mid=b[___2___]; for(i=0; i #include #define N 20 int fun( int *b ) { /**********found**********/ int t[N] ,i, num for(i=0; i=10) /**********found**********/ t[++num]=b[i]; /**********found**********/ for(i=0; i

历年全国计算机等级考试-二级C语言上机考试题库及答案

1.填空 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! void check(); /**********found**********/ int fun(___1___ *std) { /**********found**********/ ___2___ *fp; int i; if((fp=fopen("myfile5.dat","wb"))==NULL) return(0); printf("\nOutput data to file !\n"); for(i=0; i

全国计算机等级二级C语言上机编程题题型

声明:本资料由考试吧(https://www.doczj.com/doc/7a16796223.html,)收集整理,转载请注明出自https://www.doczj.com/doc/7a16796223.html, 服务:面向校园,提供计算机等级考试,计算机软件水平考试,英语四六级,研究生考试等校园相关考试信息。 特色:提供历年试题,模拟试题,模拟盘,教程,专业课试题下载等。资料丰富,更新快!考试交流论坛:https://www.doczj.com/doc/7a16796223.html,/ 考试吧(https://www.doczj.com/doc/7a16796223.html,)-第一个极力推崇人性化服务的综合考试网站! 服务:面向较高学历人群,提供计算机类,外语类,学历类,资格类,四大类考试的全套考试信息服务. 特色:极力推崇人性化服务!让您最便捷的在最短时间内得到对您最有价值考试信息!坚持每日更新!!! 全国计算机等级二级C语言上机编程题题型 第1题 函数fun的功能是:将n个人员的考试成绩进行分段统计,考试成绩放在a 数组中,各分数段的人数存到b数组中:成绩为60到69的人数存到b[0]中,成绩为70到79的人数存到b[1],成绩为80到89的人数存到b[2],成绩为90到99的人数存到b[3],成绩为100的人数存到b[4],成绩为60分以下的人数存到b[5]中。 例如,当a数组中的数据是: 93、85、77、68、59、43、94、75、98。 调用该函数后,b数组中存放的数据应是: 1、2、1、3、0、2。 注意:部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 Prog1.c #include #include void fun(int a[], int b[], int n) { for(int i=0;i

二级C语言上机题库及答案

第一套题 上机填空: #include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; /**********found**********/ x=__1__/4; /**********found**********/ while(x __2__ e) { s=s+k*x; k=k* (-1); t=2*i; /**********found**********/ x=__3__/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); 第一处答案:3.0 第二处答案:> 第三处答案:(2*i+1)或者(t+1) 上机改错题: #include /************found************/ void fun ( int n )

{ int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /************found************/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( "\nThe value of function is: %lf\n", fun ( n ) ); } 第一处改错:将:void fun ( int n ) 改为double fun ( int n ) 第二处改错:s = s + (Double)a / b; 改为s = s + (double)a / b; 第二套题 上机填空题 #include double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); }

相关主题
文本预览
相关文档 最新文档