当前位置:文档之家› 上海市C语言二级考试模拟题

上海市C语言二级考试模拟题

上海市C语言二级考试模拟题
上海市C语言二级考试模拟题

1,表达式 sizeof(“C2009”) 的值是_________

2,在C语言中,标识符只能由字母、数字和下划线字符组成,并且第一个字符不能是________ 字符。

3,定义 int b=7; float a=5.2, c=6.9;

则表达式 b*(int)(a+c)/2 的值为_____________

4,设x、y均为整型变量,完成以下语句,以实现不借助任何其它变量将x、y的值进行交换:

x = x + y; y = x - ______ ; x = x - ______ ;

5,设有如下定义,并且结构体数组student中的元素都已有值,若要将这些元素写到 fp 指向的文件中,请将函数调用语句 fwrite( student, sizeof(struct st), 50, _____ ); 补充完整。

struct st

{

char name[8];

int num;

float s[3];

} student[50];

6,写出下列程序的输出结果________

#include

long fac( int n )

{

if ( n==1 ) return 1;

return n*fac(n-1);

}

main()

{

printf( "5!=%ld\n", fac(5) );

}

7,假定建立了以下链表结构,如图所示。指针p与q指向2个不同的结点,t为与data同类型的数据变量,则交换2结点数据的语句为:t=p->data; ___________;和___________;

1)以下程序按每行5个数的格式输出1至n范围内能被7或17 整除的整数,并求出其和。

如输入:50

则输出:

7 14 17 21 28

34 35 42 49

Sum=247

源程序:

#include

void main()

{

int i, n, ct=0, sum=0;

scanf( "%d", &n );

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

if ( ____(1)_____ )

{

printf( "%d\t", i );

_____(2)_______;

ct++;

if ( ___(3)______ )

printf( "\n" );

}

printf( "\nSum=%d\n", sum );

}__

2)

以下程序输入10个整数到a数组,找到并输出其中最大的整数及其下标。如输入:80 290 150 520 330 -160 -99 0 200 9

则输出:a[3]=520

源程序:

#include

#define N 10

int get_max_index( int a[], int n )

{

int i, k=0;

for ( i=1; i

if ( ____(1)____ )

k = i;

return ______(2)_____;

}

void main()

{

int i, k, a[N];

for ( i=0; i

scanf( "%d", &a[i] );

k = _______(3)______;

printf( "a[%d]=%d\n", k, a[k] );

}______

3)

以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,从键盘上输入平时成绩在总成绩中所占比重,计算每个学生的总成绩(四舍五入为整数)后输出到屏幕上。文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101 Zhao 95 58

103 Qian 75 81

105 Sun 99 91

107 Li 80 67

运行时键盘输入:0.1

则屏幕输出:

101 Zhao 95 58 62

103 Qian 75 81 80

105 Sun 99 91 92

107 Li 80 67 68

源程序:

#include

void calc( FILE *fp, float x )

{

int num, score1, score2;

float score3;

char name[20];

while ( !feof(fp) )

{ /* 文件还有未读数据时 */

num = 0;

fscanf( fp, "%d%s%d%d", &num, name, &score1, &score2 );

if ( num > 0 )

{ /* 学生数据有效时 */

score3 = score1 * x + score2 * (1-x); /* 计算总成绩 */

printf( "%3d %-7s %3d %3d %3d\n", num, name, score1, score2, ______(1)______ ); /* 总成绩四舍五入为整数 */

}

}

}

void main()

{

FILE *fp;

float x;

fp = fopen( "student.txt", "r" );

if ( ____(2)____ ) /* 如果文件打开失败 */

{

printf( "File Open Error!\n" );

return;

}

scanf( "%f", &x );

calc( ____(3)____ ); /* 调用calc函数 */

fclose( ____(4)____ ); /* 关闭文件 */

}

四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)

1. 程序调试题1(B_3_1.C)

调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括B_3_1.c文件和B_3_1.exe文件)保存到目录C:\KS\中。

功能说明:程序计算并输出1! + 2! + …… + n!(1至n阶乘的累加和),其中函数fact(n)计算n!的值,返回类型为double。

如输入:10

则输出:1!+2!+…+10! = 4037913

原程序(见C:\KS\B_3_1.C):

#include

double fact( int n )

{

int i;

double result = 1;

for ( i=1; i

result = result * i;

return result;

}

void main()

{

int i, n;

double sum = 0;

scanf( "%d", &n );

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

sum += fact(int i);

printf( "1!+2!+...+%d! = %.0lf\n", n, sum );

}

2. 程序调试题2(B_3_2.C)

调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括B_3_2.c文件和B_3_2.exe文件)保存到目录C:\KS\中。

功能说明:程序输入任意一行字符串(设字符数不大于20),提取该字符串中的数字字符并组

成一个整数,输出该整数及其两倍的值。

如输入:abc12e3fgh4i

则输出:1234 2468

原程序(见C:\KS\B_3_2.C):

#include

void main()

{

int i, n=0;

char str[80];

gets(str[80]);

for ( i=0; str[i]!='\0'; i++ )

if ( str[i]>=0 && str[i]<=9 )

n = n*10 + str[i];

printf("%d %d\n", n, 2*n);

}

五、编程题(本大题2小题,每题18分,共36分)

1.编程题1(B_5_1.C)

编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_5_1.C文件和B_5_1.exe文件)保存到目录C:\KS\中。

功能说明:输入5个整数,输出其中正整数的累加和与正整数的平均值,输入输出格式如以下示例。

如输入:10 0 20 -5 31

则输出:Sum=61, Average=20.3

2.编程题2(B_5_2.C)

编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_5_2.C文件和B_5_2.exe文件)保存到目录C:\KS\中。

功能说明:输入正整数m和n(设100≤m≤n≤999),输出m到n之间满足下列条件的三位数:它的个位数的立方加十位数的平方再加上百位数等于该数的本身(例如135=1+3*3+5*5*5)。如输入:135 555

则输出:135 175 518

1,表达式strlen (“C2009”) 的值是________

2,设int a=3,b=4,c=5; 则a*a+b*b==c*c的结果为_____________

3,设a=2,b=3,x=3.5,y=2.5,表达式(float)(a+b)/2+(int)x%2/4 的值为____________

4,设a,b,c为整型变量,写出表达式:当a比b、c都大时结果为真__________

5,

与下列语句等价的条件表达式语句是_______

switch ( x!=0 )

{

case 0: y=1; break;

case 1: y=-1;

}

6,

设有下述描述学生信息的结构定义及变量说明,则使学生变量s 的出生年份为1990的赋值语句是___________

struct date

{ int year; /* 年 */

int month; /* 月 */

int day; /* 日 */

};

struct student

{ int no; /* 学号 */

char *name; /* 姓名 */

char sex; /* 性别 */

struct date birth;/* 出生年月日 */

} s,

7,假定建立了下图所示的链表结构,指针p、q分别指向如图所示的结点,则将q所指结点从链表中删除的C语句是__________

1),下面程序实现的功能是打印n以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如: 153是一个水仙花数, 153=1*1*1+5*5*5+3*3*3. 如输入:400

则输出:1 153 370 371

#include

void main()

{

int n, digit, k, m, s;

scanf( "%d", &n );

for ( k=1; ____(1)____; k++ )

{

s = 0;

m = k;

while ( m != 0 )

{

digit = ____(2)____;

s = s + digit*digit*digit;

m = m/10;

}

if ( ____(3)____ )

printf( "%d ", s );

}

}

2)

以下函数 int sum(int x[], int num)计算数组x前num个元素之和。在主函数中,输入10个任意整数和下标index1、index2的值(设1<=index1<=index2<=9),调用sum()函数计算index1元素到第index2元素的和,并输出结果。

如输入:

1 3

2 5 7 9 6 4 8 10

2 4

则输出:Sum=14

例示说明:下标从2至4的元素为2、5、7,其累加为14

源程序:

#include

int sum( int x[], int num )

{

int i, s=0;

for ( i=0; ____(1)____; i++ )

s = ____(2)____;

return s;

}

void main()

{

int i, index1, index2, result;

int x[10];

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

scanf( "%d", &x[i] );

scanf( "%d%d", &index1, &index2 );

result = sum( x+index1, ____(3)____ );

printf( "Sum=%d\n", result );

}

3)以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩(学生已按学号从小到大排序),从键盘上输入一个新学生的信息,按学号顺序将数据插入到学生表中,并生成新的文本文件“studentC.txt”。文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101 Zhao 95 58

103 Qian 75 81

105 Sun 99 91

107 Li 80 67

运行时键盘输入:104 Chen 80 90

则生成新文件studentC.txt的内容为:

101 Zhao 95 58

103 Qian 75 81

104 Chen 80 90

105 Sun 99 91

107 Li 80 67

源程序:

#include

void main( )

{

FILE *fp1, *fp2;

int fnum, fscore1, fscore2;

char fname[20];

int num, score1, score2;

char name[20];

int flag;

fp1 = fopen( "student.txt", ____(1)____ );

fp2 = fopen( "studentC.txt", "w" );

if ( fp1==NULL || fp2==NULL )

{

printf( "File Open Error!\n" );

return;

}

scanf( "%d%s%d%d", &num, name, &score1, &score2 );

_______(2)______;

while ( 1 )

{

fnum = 0;

fscanf( fp1, "%d%s%d%d", &fnum, fname, &fscore1, &fscore2 );

if ( fnum == 0 )

break;

if ( flag==1 && num<=fnum )

{

flag = 0;

fprintf( fp2, "%3d %-7s %3d %3d\n", num, name,

score1, score2 );

}

fprintf( fp2, "%3d %-7s %3d %3d\n", fnum, fname,

fscore1, fscore2 );

}

if ( ____(3)____ )

fprintf( fp2, "%3d %-7s %3d %3d\n", num, name, score1, score2 );

fprintf( fp2, ____(4)____ );

fclose( fp1 );

fclose( fp2 );

四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)

1. 程序调试题1(C_3_1.C)

调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_3_1.c文件和C_3_1.exe文件)保存到目录C:\KS\中。

功能说明:程序输入一个正整数并因式分解,输出分解等式。

如输入:60

则输出:60=1*2*2*3*5

原程序(见C:\KS\C_3_1.C):

#include

void main()

{

int n, i;

scanf( "%d", &n );

printf( "%d=1", n );

for ( i = 2; i <= n; )

{

if ( n % i = 0 )

{

printf( "*%d", i );

n / i;

}

else

i++;

}

}

2. 程序调试题2(C_3_2.C)

调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_3_2.c文件和C_3_2.exe文件)保存到目录C:\KS\中。

功能说明:以下程序中函数str_to_upper将字符串中的小写字母转换为大写字母,主函数调用此函数及输入输出数据,用户通过键盘输入计算所需的数据。

如输入:Hello world.

则输出:HELLO WORLD.

原程序(见C:\KS\C_3_2.C):

#include

void str_to_upper( char *s )

{

while ( *s == '\0' )

{

if ( *s>='a' || *s<='z' )

*s = *s - 'A' + 'a';

s++;

}

}

void main()

{

char str[80];

gets( str );

str_to_upper( str );

puts( str );

}

五、编程题(本大题2小题,每题18分,共36分)

1.编程题1(C_5_1.C)

编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_5_1.C文件和C_5_1.exe文件)保存到目录C:\KS\中。

功能说明:键盘输入5个整数,输出其中同时为3和5倍数的正整数。

如输入:18 30 5 -15 75

则输出:30 75

2.编程题2(C_5_2.C)

编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_5_2.C文件和C_5_2.exe文件)保存到目录C:\KS\中。

功能说明:编写程序计算并输出:1 + 12 + 123 + 1234 + …… 的前n(设0

例如输入:3,则输出:136

又如输入:6,则输出:137171

1,在C语言中,char类型的数据所占存储空间的字节数为_____,能够测试数据

所占存储空间字节数的运算符是__________

2,设有定义char x; 写出判定x是否为大写字母的表达式________

3变量value已被定义为float型,对其小数部分进行四舍五入的C表达式为_________

4设有以下程序段,则执行完该程序段后,变量 i 的值是________

int i;

char s[]="Hello!", *p=s;

for( i=0; *(p+i)!='\0'; i++ );___

5阅读以下程序并写出运行结果___________

#include

main()

{

int k,n=0;

for ( k=1; k<=1000; k++ )

if ( k%3==0 && k%5==0 )

{

printf( "%d ", k );

n++;

if ( n==3 ) break;

}

}____

6一个C程序总是从_______函数开始执行的__

7假定建立了如下图所示的链表结构,指针p、q分别指向相邻的2个结点,则将r所指结点插入p、q所指结点之间的C语句是___________;和____________;

1)以下程序输入n和n个大于1的正整数,输出其中素数。

如输入:5 19 93 11 37 15

则输出:19 11 37

例示说明:先输入n为5,再输入5个正整数,输出5个整数中的素数

#include

void main()

{

int n, a, i, j, ct;

scanf( "%d", &n );

for ( i=0; ____(1)____; i++ )

{

______(2)______;

scanf( "%d", &a );

for( j=2; j

if ( ____(3)____ )

ct++;

if ( ct==0 )

printf( "%d ", a );

}

printf( "\n" );

}__

2)以下程序输入一个10进制整数,转换为16进制,计算16进制的各个位数,并从高位到低位依次输出。

如输入:687

则输出:2 A F

例示说明:10进制687等于16进制2AF,输出时2、A、F中间包含空格

源程序:

#include

void main()

{

int a[10], i, n;

scanf( "%d", &n );

for ( i=0; n>0; i++ )

{

a[i] = ____(1)____;

n /= 16;

}

for ( i--; ____(2)____; ____(3)____ )

printf( "%X ", a[i] );

}

_____

3)以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101 Zhao 95 58

103 Qian 75 81

105 Sun 99 91

107 Li 80 67

运行时键盘输入:80

则生成新文件studentD.txt的内容为:

103 Qian 75 81

105 Sun 99 91

四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)

1. 程序调试题1(D_3_1.C)

调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_1.c 文件和D_3_1.exe文件)保存到目录C:\KS\中。

功能说明:以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。如输入:-3 5 4

则输出:sumx=18

例示说明:-3为首项,5为公差,4为项数,前4项之和为18

原程序(见C:\KS\D_3_1.C):

#include

int sumx( int a0, d, n )

{

int i, k, s=0;

k = a0;

for ( i=0; i

s += k;

k += d;

return s;

}

void main()

{

int a0, d, n;

scanf( "%d%d%d", &a0, &d, &n );

printf( "sumx=%d\n", sumx(a0,d,n) );

}

2. 程序调试题2(D_3_2.C)

调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_2.c文件和D_3_2.exe文件)保存到目录C:\KS\中。

功能说明:以下函数length返回字符串中字母A到字母Z所包含字符的长度。主程序输入一行字符串,调用length函数输出该字符串中大写字母A到Z的子串长度。

如输入:Z2009-AShanghaiZ

则输出:Length=8

例示说明:从A到Z的子串为Shanghai,其长度为8

原程序(见C:\KS\D_3_2.C):

#include

int length( char *p )

{

char *q, *r;

for ( q=p; *q!='\0' || *q!='A'; q++ )

;

for ( r=q; *r!='\0' && *r!='Z'; r++ )

;

return r-q;

}

void main()

{

char str[81];

int n;

gets( str[0] );

n = length( str );

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

}

五、编程题(本大题2小题,每题18分,共36分)

1.编程题1(D_5_1.C)

编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括D_5_1.C文件和D_5_1.exe文件)保存到目录C:\KS\中。

功能说明:键盘输入5个整数,按由小到大的顺序排序后输出。

如输入:10 0 20 -5 31

则输出:-5 0 10 20 31

2.编程题2(D_5_2.C)

编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括D_5_2.C文件和D_5_2.exe文件)保存到目录C:\KS\中。

功能说明:键盘输入正整数n,计算并输出

()1

111

11

23

n

n

-

-+-+-

的值,输出结果保留6

位小数。

如输入:10

则输出:0.645635

例示说明:student.txt中考试成绩在80分以上的Qian与Sun信息写到studentD.txt

源程序:

#include

void select( FILE *fp1, FILE *fp2, int x )

{

int num, score1, score2;

char name[20];

while ( 1 )

{

num = 0;

fscanf( fp1, "%d%s%d%d", &num, name, &score1, &score2 );

if ( num == 0 )

____(1)____;

if ( ____(2)____ )

fprintf( fp2, "%3d %-7s %3d %3d\n", num, name,

score1, score2 );

}

fprintf( fp2, "0" );

}

void main()

{

FILE *fp1, *fp2;

int x;

fp1 = fopen( "student.txt", "r" );

fp2 = fopen( "studentD.txt", ____(3)____ );

if ( fp1==NULL || fp2==NULL )

{ /* 文件打开失败 */

printf( "File Open Error!\n" );

return;

}

scanf( "%d", &x );

select( ____(4)____ );

fclose( fp1 );

fclose( fp2 );

}___

历年二级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语言程序设计)上机题汇总 一、程序调试题 (一)程序填空 练习一: /*该程序功能:对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语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

C语言模拟试卷A

安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1

计算机二级c语言历年真题及答案

计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】 class=txt>c语言程序设计 (考试时间90分钟,满分100分) 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (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) 可封装 d) 自顶向下

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)阅读以下程序

c语言模拟试题

试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24

对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。

二级C语言试题(含答案)

二级C语言试题 一、判断题(2×8=16分) 1、printf()函数总是从新行的起始位置开始打印。( F ) 2、所有的变量在使用前都必须予以申明。(F) 3、在申明变量时必须给出变量的类型。(T) 4、C语言认为变量number和NuMbEr是相同的。( F) 5、打印三行输出的C语言程序必须用三条printf语句。(F) 6、求余运算符%只能用于两个整数操作数。(T) 7、switch选择结构中必须有default子句。(F) 8、如果x>y或ay&&a

新版计算机二级C语言测试题及答案解析

计算机二级C语言测试题及答案解析计算机二级C语言测试题及答案解析 C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,下面给大家整理了计算机二级C语言测试题及答案,欢迎阅读! 计算机二级C语言测试题及答案解析 1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C 开始执行。 A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main函数 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 5~8题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成

数字不能作为标识符的开头 关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int 为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A、3ax B、x C、case D、-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是( C )。 A、 %x B、a+b C、a123 D、123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

C语言模拟试卷

一.单项选择题 1.一个C语言源程序由一个或多个( D )组成。 A.子程序B.过程C.函数D.主函数 2. 下列定义变量的语句中错误的是( C )。 A.int _int B.double int_1 C.char For D.float US$ 3.以下语句有语法错误的是( B )。 A.printf("%d",0xabc); B.printf("%f",1.234e2.0); C.printf("%d",057); D.printf("%c",'\\'); 4.若有定义int m=2,n=2;执行语句(m=0)&&(n=3);后m和n的值分别为( D )。 A.2 2 B.0 3 C.2 3 D.0 2 5.若有定义int k=4,a=3,b=2,c=1;则表达式kb) 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;} 10. 若变量已正确定义,要求程序段完成求10!的计算,不能完成此操作的程序段是( B )。 A.for(i=1,fac=1;i<=10;i++) fac*=i;

全国计算机等级考试 历年真题2009年3月二级C语言笔试真题及答案

全国计算机等级考试历年真题2009年3月二级C语言笔试真题及答案 一、选择题(每题2分,共计70分) 1.(1)下列叙述中正确的是 A)栈是先进先出的线性表 B)队列是"先进后出"的线性表 C)循环队列是非线性结构 D)有序线性表即可以采用顺序存储结构,也可以采用链式存 储结构 A B C D 2.(2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 A B C D 3.(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4 A B C D 4.(4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序

D)堆排序 A B C D 5.(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列 属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 A B C D 6.(6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试程序进行"错误定位"是程序调试的必要步骤 C)程序调试也成为Debug D)软件测试应严格执行测试计划,排除测试的随意性 A B C D 7.(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性 C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度 A B C D 8.(8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训

历年全国计算机二级C语言试题库完整

. . . . 参考 50道C 语言知识题 1.以下叙述中正确的是 A)用C 程序实现的算法必须要有输入和输出操作 B)用C 程序实现的算法可以没有输出但必须要有输入 C)用C 程序实现的算法可以没有输入但必须要有输出 D)用C 程序实现的算法可以既没有输入也没有输出 2.下列可用于C 语言用户标识符的一组是 A)void,define,WORDB)a3_3,_123,Car C)For,-abc,IFCaseD)2a,DO,sizeof 3.以下选项中可作为C 语言合法常量的是 A)-80B)-080C)-8e1.0D)-80.0e 4.若有语句:char*line[5];,以下叙述中正确的是 A)定义line 是一个数组,每个数组元素是一个基类型为char 为指针变量 B)定义line 是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line 是一个指针数组,语句中的*号称为间址运算符 D)定义line 是一个指向字符型函数的指针 5.以下定义语句中正确的是 A)inta=b=0;B)charA=65+1,b=′b′; 6.有以下程序段 charch;intk; ch=′a′; k=12; printf("%c,%d,",ch,ch,k);printf("k=%d\n",k); 已知字符a 的ASCII 码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 7.有以下程序 main() {inti,s=1; for(i=1;i<50;i++) if(!(i%5)&&!(i%3))s+=i; printf("%d\n",s);} 程序的输出结果是 A)409B)277C)1D)91 8.当变量c 的值不为2、4、6时,值也为"真"的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) 9.若变量已正确定义,有以下程序段

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

计算机二级C语言测试题及答案解析(一)

2016年计算机二级C语言测试题及答案解析(一)1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C 开始执行。 A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main函数 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 )。

B、a[i] C、a2_i D、int t 5~8题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成 数字不能作为标识符的开头 关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A、3ax B、x C、case D、-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C )。 A、%x B、a+b C、a123

选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 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 选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C 中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C 。 A、2.5 B、2 C、1 D、3 %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%

全国计算机等级考试二级C语言真题2013年3月

全国计算机等级考试二级C语言真题2013年3月 (总分40, 做题时间90分钟) 一、选择题 1. 程序流程图中带有箭头的线段表示的是______。 A 图元关系 B 数据流 C 控制流 D 调用关系 答案:C [解析] 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C。 2. 结构化程序设计的基本原则不包括______。 A 多态性 B 自顶向下 C 模块化 D 逐步求精 答案:A [解析] 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。 3. 软件设计中模块划分应遵循的准则是______。 A 低内聚低耦合 B 高内聚低耦合

C 低内聚高耦合 D 高内聚高耦合 答案:B [解析] 软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。 4. 在软件开发中,需求分析阶段产生的主要文档是______。 A 可行性分析报告 B 软件需求规格说明书 C 概要设计说明书 D 集成测试计划 答案:B [解析] A错误,可行性分析阶段产生可行性分析报告。C错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。 5. 算法的有穷性是指______。 A 算法程序的运行时间是有限的 B 算法程序所处理的数据量是有限的 C 算法程序的长度是有限的 D 算法只能被有限的用户使用

C语言程序设计模拟试题A(附答案)

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5]={0,1,2,3,4,5};B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) {printf(“*”); x- -; } A) ****B) ***C) **D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。 解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。

A)9B) 8C) 5D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 A) 数组的首地址B) 数组第一个元素的值 C) 数组中全部元素的值D) 数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。 A)void B)double C)int D)char 8、下面不能正确进行字符串赋值操作的语句是(C)。 A) char s[5]={"ABCD"};B) char s[5];s="ABCD"; C) char *s;s="ABCDEF";D) char *s="ABCD"; 解析:这样理论上的没错的把s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样char s[] = "ABCDEF"; 或char s[8];strcpy(s, "ABCDEF"); 9、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(C)。 A)++p B)++(*p)C) *(++p)D) *(p+=2) 解析: A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x,int y) { int m=3; return( x*y-m); } main( ) { int a=7,b=5;

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 或35 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 :m联系 :n联系 :1联系 :l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

二级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、修改答案

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