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

2016年C语言上机模拟题1

2016年C语言上机模拟题1
2016年C语言上机模拟题1

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

A. 实时控制

B. 计算机辅助设计

C. 数据处理

D. 科学计算

参考答案:C

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

A. 计算机的硬件系统

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

C. 计算机的软件系统

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

参考答案:D

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

A. 控制器和运算器

B. 内存和控制器

C. 控制器和存储器

D. 运算器和I/O接口

参考答案:A

的对话框窗口不可以______。

A. 关闭

C. 任意改变大小

D. 最小化

参考答案:C

5.某用户在域名为的邮件服务器上申请了一个账号,账号名为xing,那么该用户的电子邮件地址为______。

A. xing%参考答案: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'

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.

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

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

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

(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.

B.

C.

D.

参考答案:B

是正确的函数声明语句。

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

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

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.以读写方式打开一个已有的二进制文件,以下选项中正确的是______。

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

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

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

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

参考答案:D

题目:

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

ABCDE

BCDEA

CDEAB

DEABC

EABCD

#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("","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("","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("","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("","w+"))!=NULL) {

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

fclose(out);

}

}

void main()

{

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

#define N 3

long s=0,t,v;

int i,len=0;

char c[]="5678";

while(c[len]!='\0')len++;

for(i=0,v=0;i

v=v*10+1;

二级(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语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

历年二级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语言考试试题

试题 课程名称C语言程序设计适用时间 试卷类别 A 适用专业、年级、班 一、选择题(每小题2分, 2×25=50分) 1.下列叙述错误的是( )。 A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.以下叙述不正确的是( )。 A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.C语言中最简单的数据类型包括( )。 A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)字符型、实型、逻辑型 4.C语言中运算对象必须是整型的运算符是( )。 A)%= B)/ C)= D)<= 5.若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 6.下列运算符中优先级最高的是( )。 A) < B) + C) && D) ! = 7.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是( )。 A) int B) float C) double D) char 8.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( )。 A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值 9.设整型变量a,b的值均为8, printf("%d,%d",(a++,++b),b--);的输出是( )。 A)8,8 B)8,7 C)9,9 D)8,9 10.若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为( )。 A)10 20 B)10,20 C)1020 D)10:20 11.判断char型变量ch是否为大写字母的正确表达式是( )。 A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch) 12.有如下程序 main( ) { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是( )。 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 13.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main( ) { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf("NO%d:%f\n",n,ave);

C语言考试试卷及答案

2011-2012学年第一学期 C语言程序设计A 课程A卷考试题 共 4 页此第 1 页成绩 一、单项选择题(每小题2分,共40分) 1. C语言中合法的字符常量是() A.n B.’\n’ C.110 D.”n” 2. 有以下程序: main( ) { char ch=’A’; printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1); } 程序运行后的输出结果是() A. ch(1)=65,ch(2)=A B. ch(1)=97,ch(2)=A C. ch(1)=65,ch(2)=B D. ch(1)=97,ch(2)=B 3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是() A. a==-b&&a%2==0 B. a!=b&&a+b==0&&a%2 C. !(a%2)&&a==-b D.a%2==0&&a+b==0 4. 以下程序段中语句” printf("i=%d,j=%d\n",i,j);”的执行次数是() int i, j; for(i=3;i ;i--) for(j=1;j<5;j++) printf("i=%d,j=%d\n",i,j); A. 12 B. 20 C. 15 D. 24 5. 执行以下程序段后,x[2]的值是() int x[10]={1,2,3,4,5,6,7,8,9,10},i,j,t; i=0;j=9; while(i

c语言期中考试试题及答案

中国民航大学2009-2010学年第二学期 《C 语言程序设计》期中考试试卷 课程编号:03402513 试卷类型: A 卷 考试形式:笔试 考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C 语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C 程序的执行是(【2】) 。 【2】 A) 从本程序的主函数开始,到本程序的主函数结束

B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的

C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关 8、下列四组(八进制或十六进制)常数中,正确的一组是(【8】)。【8】 A) 016 0xbf 18 B) 0abc 017 0xa C) 010 -0x11 0x16 D) 0A12 7FF -123 9、下列四组转义字符中,合法的一组是(【9】)。 【9】 A)‘\t’‘\\’‘\n’ B)‘\’‘\017’‘\x’

二级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语言考试试题

1.若x为int型变量,则执行以下语句后,x的值为-60。 x=6; x+=x-=x*x; x=x-x*x=-30 x=x+x=-60 2.若有定义int a[2][3]; 则对a数组的第i行第j列元素地址的正确引用为a[i]+j。 3.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是*p=*&j。 4.以下叙述正确的是define和if都不能定义为用户标识符。 5. 以下程序的输出结果是2。 #define SQR(X) X*X main() { int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); a/=k+k*m+m/k+k*m+m printf("%d\n",a); } 6. 以下程序的输出结果是4。 main() {int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) for(j=i;j<=i;j++) t=t+b[i][j]; { t=t+b[i][j];} printf("%d\n",t); printf("%d\n",t); }_ 7. 编一个程序,打入星期号,输出该星期的英文名字。例如,输入"1"则输出"Monday",说明:星期日编号为0,要求用指针数组处理。 main() { char *name[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday", "Saturday"}; int n; printf("\nInput the number(0-6):"); scanf("%d", &n); if ((n< 7) && (n>=0)) printf("\nThe name is: %s",name[n]); else printf("\nInput error"); } 8. 局部变量是静态存储变量。错误 9. "文件包含"处理是指一个源文件可以将另一个源文件的内容全部包含进来。正确 10. 若有定义:int *p1,*p2;则p1+p2无实际意义。正确 11. 若在函数内定义形参数组a:int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。错误 12. 以下不能正确定义二维数组的选项是int a[2][]={{1,2},{3,4}};。 13. 以下程序的输出结果是6 15 15。 int d=1; fun(int p) { static int d=5; d+=p; printf("%d ",d); return(d); } main( ) { int a=3; printf("%d \n", fun(a+fun(d))); }

计算机二级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

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

计算机二级考试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语言考试题及答案

一、单项选择题:(10分,每题2分) 1.char *p[10];该语句声明了一个: c 。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: D 。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A) ##3B) **3C) **3D)##3**4 **4 ##4 ##4**5 ##5 ##5 **5 3.在while(!x)语句中的!x与下面条件表达式等价的是:D 。 A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知 struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; }; struct rect rt; struct rect *rp = &rt; 则下面哪一种引用是不正确的__D______。 A) r t.pt1.x B) (*rp).pt1.x C) r p->pt1.x D) rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。 A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1. #include main()

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

声明:本资料由考试吧(https://www.doczj.com/doc/935381219.html,)收集整理,转载请注明出自https://www.doczj.com/doc/935381219.html, 服务:面向校园,提供计算机等级考试,计算机软件水平考试,英语四六级,研究生考试等校园相关考试信息。 特色:提供历年试题,模拟试题,模拟盘,教程,专业课试题下载等。资料丰富,更新快!考试交流论坛:https://www.doczj.com/doc/935381219.html,/ 考试吧(https://www.doczj.com/doc/935381219.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语言上机考试题库(可直接打印)

2012年9月全国计算机考试上机题库100套 第01套: 给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。 例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(unsigned long *n) { unsigned long x=0, i; int t; i=1; while(*n) { t=*n % __1__; if(t%2!= __2__) { x=x+t*i; i=i*10; } *n =*n /10; } *n=__3__; } main() { unsigned long n=-1; while(n>99999999||n<0) { printf("Please input(0 double fun ( int n ) { double result = 1.0 ; if n = = 0 return 1.0 ; while( n >1 && n < 170 ) result *= n-- return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。 第二处:语句后缺少分号。 *************************************************** 请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234",则函数把它转换为整数值-1234。函数fun中给出的语句仅供参考。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include #include long fun ( char *p) {int i, len, t; /* len为串长,t为正负标识*/ long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; /* 以下完成数字字符串转换为一个数字*/ return x*t; } main() /* 主函数*/ { char s[6]; long n; printf("Enter a string:\n") ; gets(s); n = fun(s); printf("%ld\n",n); NONO ( ); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *fp, *wf ; int i ; char s[20] ; long n ; fp = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%s", s) ; n = fun(s); fprintf(wf, "%ld\n", n) ; } fclose(fp) ; fclose(wf) ; } 解题思路:本题是将一个数字字符串转换为一个整数。 参考答案: #include #include long fun ( char *p) { int i, len, t; /* len为串长,t为正负标识*/ long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; /* 以下完成数字字符串转换为一个数字*/ while(*p) x = x*10-48+(*p++); return x*t; } main() /* 主函数*/ { char s[6]; long n; printf("Enter a string:\n") ; gets(s); n = fun(s); printf("%ld\n",n); NONO ( ); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。*/ FILE *fp, *wf ; int i ; char s[20] ; long n ; fp = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%s", s) ; n = fun(s); fprintf(wf, "%ld\n", n) ; } fclose(fp) ; fclose(wf) ; } 注意:由于NONO( )这个函数是改卷人用的,与考生没有什 么关系,故下面从第2套试题开始均省略NONO( ) ※※※※※※※※※※※※※※※※※※※※※※※※※ 第02套: 给定程序中,函数fun的功能是将形参给定的字符串、整数、 浮点数写到文本文件中,再用字符方式从此文本文件中逐 个读入并显示在终端屏幕上。请在程序的下划线处填入正 确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(char *s, int a, double f) { __1__ fp; char ch; fp = fopen("file1.txt", "w"); fprintf(fp, "%s %d %f\n", s, a, f); fclose(fp); fp = fopen("file1.txt", "r"); printf("\nThe result :\n\n"); ch = fgetc(fp); while (!feof(__2__)) { putchar(__3__); ch = fgetc(fp); } putchar('\n'); fclose(fp); } main() { char a[10]="Hello!"; int b=12345; double c= 98.76; fun(a,b,c); } 解题思路: 本题是考察先把给定的数据写入到文本文件中,再从该文件 读出并显示在屏幕上。 第一处:定义文本文件类型变量,所以应填:FILE *。 第二处:判断文件是否结束,所以应填:fp。 第三处:显示读出的字符,所以应填:ch。 *************************************************** 给定程序MODI1.C中函数fun的功能是: 依次取出字符串中 所有数字字符, 形成新的字符串, 并取代原字符串。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程 序的结构! 给定源程序: #include void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') s[j]=s[i]; s[j]="\0"; } main() { char item[80]; printf("\nEnter a string : ");gets(item); printf("\n\nThe string is : \"%s\"\n",item); fun(item); printf("\n\nThe string of changing is : \"%s\"\n",item ); } 解题思路: 第一处: 要求是取出原字符串中所有数字字符组成一个新的 字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:s[j++]=s[i];。 第二处: 置新字符串的结束符,所以应改为:s[j]='\0';. *************************************************** 请编写函数fun, 函数的功能是: 将M行N列的二维数组中的 字符数据, 按列的 顺序依次放到一个字符串中。 例如, 二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是: WSHWSHWSH。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数 fun的花括号中填入 你编写的若干语句。 给定源程序: #include #define M 3 #define N 4 void fun(char s[][N], char *b) { int i,j,n=0; for(i=0; i < N;i++) /* 请填写相应语句完成其功能*/ { } b[n]='\0'; } main() { char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H' }}; int i,j; printf("The matrix:\n"); for(i=0; i #define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, STU n) { FILE *fp; fp = fopen(__1__, "rb+"); fseek(__2__, -1L*sizeof(STU), SEEK_END); fwrite(&n, sizeof(STU), 1, __3__); fclose(fp); } main() { STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, {10005,"ZhangSan", 95, 80, 88}}; STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N]; int i,j; FILE *fp; fp = fopen("student.dat", "wb"); fwrite(t, sizeof(STU), N, fp); fclose(fp); fp = fopen("student.dat", "rb"); fread(ss, sizeof(STU), N, fp); fclose(fp); printf("\nThe original data :\n\n"); for (j=0; j

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