158文章网欢迎您
您的位置:158文章网 > 范文示例 > C语言二级考试最新题库,有需要的同学赶快点进来看看

C语言二级考试最新题库,有需要的同学赶快点进来看看

作者:158文章网日期:

返回目录:范文示例

今天小编给各位分享c语言二级考试的知识,文中也会对其通过C语言二级考试最新题库,有需要的同学赶快点进来看看和求二级C语言笔试题库等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!

内容导航:
  • C语言二级考试最新题库,有需要的同学赶快点进来看看
  • 求二级C语言笔试题库
  • 20分求计算机二级机c语言试题库,要最新的,谢谢了
  • c语言二级考试题及答案
  • 一、C语言二级考试最新题库,有需要的同学赶快点进来看看

    1、在语句cin>>data;中,cin是(判断题)所属章节:4.C语言二级考试题库难度系数:1A. C++的关键字

    B.类名

    C.对象名

    D.函数名

    说明:此写解题要点或对题目做说明。2、假设整型变量a的值是1,b的值是2,c的值是3,在这种情况下执行下面的语句:

    u=(a==2)?b+a:c+a;执行该语句后整型变量u的值为()。(单选题)所属章节:4.C语言二级考试题库难度系数:1A. 0

    B. 3

    C. 4

    D. 5

    答案: C

    此写解题要点或对题目做说明。说明:

    3、分析下面的代码:

    if(x>20||x<-10)

    if(y<=100&&y>x)

    printf("Good");

    else

    printf("Bad");如果x=30,y=150,输出为()。(单选题)所属章节:4.C语言二级考试题库难度系数:1A. Good

    B. Bad

    C. Good Bad

    D. Bad Good

    答案: B

    说明:此写解题要点或对题目做说明。4、分析下面的代码:

    #include<stdio.h>void main()

    {

    int a;

    scanf("%d",&a);

    switch(a)

    {

    case 1:printf("星期一");

    case 2:printf("星期二");

    case 3:printf("星期三");

    case 4:printf("星期四");

    case 5:printf("星期五");

    case 6:printf("星期六");

    case 7:printf("星期日");

    default:printf("输入错误");

    }

    }

    若a=6,则输出结果是()。

    (单选题)

    所属章节:4.C语言二级考试题库难度系数:2

    A.星期六

    B.星期六星期日

    C.星期六星期日输入错误

    D.输入错误

    答案: C

    此写解题要点或对题目做说明。说明:

    5、分析下面的代码:

    if (a<0.7)

    printf("提示1");

    else if(a<1)

    printf("提示2");

    else

    printf("提示3");

    如果a=0.8,那么输出结果为( )。(单选题)所属章节:4.C语言二级考试题库难度系数:2

    A.提示1

    B.提示2

    C.提示3

    答案: C

    说明:此写解题要点或对题目做说明。6、在switch结构中,()子句不是必选项。(单选题)

    所属章节:4.C语言二级考试题库难度系数:1

    A. switch

    B. case

    C. default

    D. else

    答案: C

    说明:此写解题要点或对题目做说明。7、分析下面的代码,如果输入85,那么将输出()。

    #include <stdio.h>

    void main()

    {

    int mks;

    printf("请输入分数:");

    scanf("%d",&mks);

    mks>90?printf("优秀"):printf("一般");} (单选题)

    所属章节:4.C语言二级考试题库难度系数:2A.优秀

    B.一般

    C.代码将不会显示任何结果

    D.语法错误

    答案: B

    说明:此写解题要点或对题目做说明。8、分析下面的C语言代码:

    int a=1,b=10;

    do{

    b-=a; a++;

    }while (b- -<0);

    则执行循环语句后b的值为()。(单选题)所属章节:4.C语言二级考试题库难度系数:1A. 9

    B. -2

    C. -1

    D. 8

    答案: D

    9、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:

    scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为()。(单选题)

    所属章节:4.C语言二级考试题库难度系数:1A. 100 765.12

    B. i=100,f=765.12C. 100<回车> 765.12

    D. x=100 y=765.12答案: B

    10、#include<stdio.h>void main()

    {

    int a=3,b=2,c=1;

    int x=10,y=20;

    if(a<b)

    if(b!=0)

    if(!x)

    y=1;

    else if(x)

    y=0;

    y=-1;

    printf("%d",y);

    }

    上面的C程序的输出结果是()。(单选题)所属章节:4.C语言二级考试题库难度系数:1A. 20

    B. 1

    C. 0

    D. -1

    答案: B

    11、C语言中,while和do„while循环的主要区别是()。(单选题)

    所属章节:4.C语言二级考试题库难度系数:1A. while的循环控制条件比do„while的循环控制条件严格

    while的循环体至少无条件执行一次B. do„

    C. do„while允许从外部转到循环体内D. do„while的循环体不能是复合语句答案: D

    12、执行下面的C程序段后,输出结果是()。int a=5;

    while( a- -);

    printf( "%d",a) ; (单选题)

    所属章节:4.C语言二级考试题库难度系数:1A. 54321

    B. 4321

    C. 0

    D. -1

    答案: D

    13、下面C代码的输出结果是()。

    int answer,result;

    answer=100;

    result=answer-10;

    printf(“The result is %d”, result+5); (单选题)所属章节:4.C语言二级考试题库难度系数:1A. The result is 90B. The result is 95C. The result is 10D. The result is 100答案: B

    14、在C语言中,()是在所有函数外部声明的。(单选题)

    所属章节:4.C语言二级考试题库难度系数:1

    A.全局变量

    B.局部变量

    C.形参

    答案: A

    15、分析下面的C程序:

    #include<stdio.h>void main()

    {

    int num=0;

    while(num<=2){

    num++;

    printf("%d ",num);}

    }

    输出结果是()。(单选题)

    所属章节:4.C语言二级考试题库难度系数:1

    A. 1 2 3

    B. 0 1 2

    C. 2 3

    D. 1 2

    答案: A

    16、研究下面的C程序段:

    int i,j;

    for (i=5;i;i--)

    for(j=0;j<4;j++){„}

    循环体的总执行次数是()。(单选题)所属章节:4.C语言二级考试题库难度系数:1

    A. 20

    B. 25

    C. 24

    D. 30

    答案: A

    17、设x,y,z,t均为int型变量,则执行以下语句后,t的值为()。

    x=y=z=1;

    t=++x||--y&&++z;(选择一项)(单选题)所属章节:4.C语言二级考试题库难度系数:1

    A.不定值

    B. 2

    C. 1

    D. 0

    答案: C

    18、阅读下面的C语言代码,输出结果是()。 int x, y = 1, z=0;

    if ( z < 0 )

    x = 3;

    else if ( y == 0 )

    x = 5;

    else

    x = 7;

    printf("%d, %d", x, y); (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 7, 0

    B. 7, 1

    C. 3, 3

    D. 以上都不正确

    答案: B

    19、在C语言中,已知字母A的ASCII码是65,则执行语句:char ch='A'+3; 后ch的值

    为( )。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 不能确定

    B. 68

    C. C

    D. D

    答案: D

    20、在C语言中,能正确表示a和b同时为正或同时为负的逻辑表达式是()。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. (a>=0‖b>=0)&&(a<0‖b<0)

    B. (a>=0&&b>=0)&&(a<0&&b<0)

    C. (a+b>0)&&(a+b<=0) D. a*b>0

    答案: D

    21、下面的C语言代码段的输出结果是()。

    int j;

    for(j=1; j<10; j+=2) printf("%d ",j); (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 1 2 3 4 5 6 7 8 9 B. 2 4 6 8

    C. 1 3 5 7 9

    6/48页

    D. 1 2 4 6 8

    答案: C

    22、用来将两个字符串合并为一个字符串的函数是()。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. strcat()

    B. strcpy()

    C. strlen()

    答案: A

    23、在C语言中,表达式:10!=9 的值是()。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. true

    B. 非零值

    C. 0

    D. 1

    答案: D

    24、分析下面的C代码段:

    char str1[15] = "Sea View"; char str2[15] = "Sea Breeze"; strcpy(str1,str2);

    printf("%s",str1); 则输出结果是()。(选择一项) (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. Sea View

    B. Sea Breeze

    C. Sea View Sea Breeze D. Sea Breeze Sea View 答案: B

    25、在C语言中,下列正确的字符型常量是()。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. “f”

    B. ‘9’

    C. #

    D. 365

    答案: B

    26、在C语言中,以下不会出现死循环的语句是()。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. int x=0;

    do{x++;}while(x=1); B. for(k=10; ; k--); C. for(y=0, x=1; x>++y; x=k++) k=x;

    D. while(1) {x++;} 答案: C

    27、分析下面的C语言程序:

    void main()

    {

    int a,b,c=246;

    a=c/100%9;

    b=(-1)&&(-1);

    printf("%d,%d",a,b); }

    输出结果是()。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 2,1

    B. 3,2

    C. 4,3

    D. 2,-1

    答案: A

    28、在C语言中,下面()是逻辑运算符中优先级最高的。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数1

    A、&

    B. &&

    C. ||

    D. &

    答案: A

    29、sizeof(float)是( ) (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. 一个双精度型表达式

    B. 一个整型表达式

    C. 一种函数调用

    D. 一个不合法的表达式

    答案: B

    30、临时存储频繁使用的信息以加快访问速度,通常用在处理器和主存储器之间一种计算机

    存储器是()。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 高速缓存(Cache)

    B. 辅助存储器

    C. 随机访问存储器

    D. 只读存储器

    答案: A

    31、以下两种说法()

    说法1:浏览器 – 服务器模型的软件在升级时需要升级相应的客户端 说法2:客户端 – 服务器模型中的客户端和服务器必须是不同的计算机 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 只有说法1正确

    B. 只有说法2正确

    C. 两种说法都正确

    D. 两种说法都不正确

    答案: D

    32、下列关于计算机病毒的叙述中,错误的是()。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. 计算机病毒会造成对计算机文件和数据的破坏 B. 只要删除感染了病毒的文件就可以彻底消除病毒 C. 计算机病毒是一段人为制造的小程序

    D. 计算机病毒是可以预防和消除的

    答案: B

    33、在Windows 2000中任务管理器可用于以下操作,除了()。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 结束某个应用程序

    B. 结束某个进程

    C. 察看CPU使用率

    D. 断开网络连接

    答案: D

    34、以下两种说法()

    说法1:管理员帐户永远不能被删除和禁用

    说法2:来宾帐户默认是禁用的,但也可以启用。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. 只有说法1正确

    B. 只有说法2正确

    C. 两种说法都正确

    D. 两种说法都不正确

    答案: C

    35、以下关于TCP/IP协议的描述正确的是()。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. TCP/IP协议中共有两个协议,分别是TCP协议和IP协议 B. TCP/IP协议是最流行的网络协议,没有该协议将无法使用Internet

    C. TCP协议用于在网络中传输数据

    D. IP协议用于检查数据的正确性

    答案: B

    36、请阅读以下程序:

    void main()

    {

    int a=5,b=0,c=0;

    if(a=b+c) printf("*** "); else printf("$$"); }

    以上程序( ) (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 有语法错误不能通过编译

    B. 可以通过编译但不能通过连接

    C. 输出***

    D. 输出$$

    答案: D

    37、若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是()。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 4

    B. 3

    C. 2

    D. 1

    答案: D

    38、表达式18/4*sqrt(4.0)/8值的数据类型为()。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. int

    B. float

    C. double

    D. 不确定

    答案: C

    39、若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是()。

    #include<stdio.h>

    void main()

    {

    int c;

    while((c=getchar())!=’’)

    switch(c-‘2’)

    {

    case 0:

    case 1: putchar(c+4);

    case 2: putchar(c+4);break;case 3: putchar(c+3);

    default: putchar(c+2);break;

    }

    printf(“”);

    } (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 668977

    B. 668966

    C. 66778777

    D. 6688766

    答案: A

    40、以下描述中正确的是( ) (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能

    使用复合语句

    while循环由do开始,用while结束,在while(表达式)后面不能写分号 B. do-

    C. 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)

    的操作

    D. do-while循环中,根据情况可以省略while 答案: C

    41、下面程序的运行结果是( )

    #include<stdio.h>

    void main()

    {int y=10;

    do{y--;}while(- -y);

    printf(“%d”,y- -);} (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. -1

    B. 1

    C. 8

    D. 0

    答案: D

    42、下面有关for循环的正确描述是( )。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

    答案: D

    43、若i为整型变量,则以下循环执行次数是( )。 for(i=2;i= =0;) printf(“%d”,i- -); (单选题)

    11/48页

    所属章节:4.C语言二级考试题库 难度系数:1 A. 无限次

    B. 0次

    C. 1次

    D. 2次

    答案: B

    44、以下不是无限循环的语句为( )。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. for(y=0,x=1;x>++y;x=i++) i=x;

    B. for(;;x++=i);

    C. while(1){x++;}

    D. for(i=10;;i- -) sum+=i; 答案: A

    45、下面程序的运行结果是( )

    #include<stdio.h>

    void main()

    { int i;

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

    {

    if(i%2) printf(“*”);

    else continue;

    printf(“#”);

    }

    printf(“$”);} (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. *#*#*#$

    B. #*#*#*$

    C. *#*#$

    D. #*#*$

    答案: A

    46、( )命令用于重新命名文件。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. dir

    B. rd

    C. ren

    D. cd

    答案: C

    47、( )命令用于将一个文件从一个位置移到另一个位置。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. move

    B. copy

    C. cut

    D. paste

    答案: A

    48、( )文件系统可提高性能、可靠性和磁盘空间利用率,以及其他扩展功能,如安全访问

    控制列表和文件系统日志。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. FAT12

    B. FAT16

    C. FAT32

    D. NTFS

    答案: D

    49、( )是一种线性数据结构,并按后进先出的方式来操作数据。 (单选题)

    所属章节:4.C语言二级考试题库 难度系数:1 A. 队列

    B. 栈

    C. 树

    D. 图

    答案: B

    50、下列IP地址为c类地址的是( )。 (单选题) 所属章节:4.C语言二级考试题库 难度系数:1 A. 4.3.2.1

    B. 266.45.78.3

    C. 192.223.78.5

    D. 150.33.7.8

    答案: C

    一、求二级C语言笔试题库

    2006年4月二级C语言笔试试题

    一选择题((1)-(10)每题2分,(11)-(50)每题1分,共60分)

    下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

    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) ABCDEF

    B) DBEAFC

    C) ABDECF

    D) DEBFCA

    7)在深度为7的满二叉树中,叶子结点的个数为

    A)32

    B)31

    C)64

    D)63

    8)“商品”与“顾客”两个实体集之间的联系一般是

    A)一对一

    B)一对多

    C)多对一

    D)多对多

    9)在E-R图中,用来表示实体的图形是

    A)矩形

    B)椭圆形

    C)菱形

    D)三角形

    10)数据库DB,数据库系统DBS,数据库管理系统DBMS之间的关系是

    A)DB包含DBS和DBMS

    B)DBMS包含DB和DBS

    C)DBS包含DB和DBMS

    D)没有任何关系

    11)以下不合法的用户标识符是

    A)j2_KEY

    B)Double

    C) 4d

    D) _8_

    12)以下不合法的数值常量是

    A)011

    B)lel

    C) 8.0 E0.5

    D) 0xabcd

    13)以下不合法的字符常量是

    A)'\018'

    B '\”'

    C) '\\'

    D) ‘\xcc'

    14)表达式3.6-5/2+1.2+5%2的值是

    A)4.3

    B) 4.8

    C) 3.3

    D) 3.8

    15)以下能正确定义字符串的语句是

    A)char str[]={‘\064'};

    B) char str=”\x43”;

    C) char str=”;

    D) char str[]=”\0”;

    16)以下数组定义中错误的是

    A) int x[][3]={0};

    B) int x[2][3]={{1,2},{3,4},{5,6}};

    C) nt x[][3]={{1,2,3},{4,5,6}};

    D)int x[2][3]={1,2,3,4,5,6};

    17)若要求从键盘读入含有空格字符的字符串,应使用函数

    A)getc()

    B) gets()

    C) getchar()

    D) scanf()

    18) 下四个程序中,完全正确的是

    A)#include B)#include

    main(); main()

    {/*programming*/ {/*/programming/*/

    printf(“programming!\n”); } printf(“programming!\n”);}

    C) #include D) include

    main() main()

    {/*/*programming*/*/ {/*programming*/

    printf(“programming!\n”);} printf(“programming!\n”);}

    19)若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是

    A)switch(x) B) switch((int)x);

    {case 1.0: printf(“*\n”); {case 1: printf(“*\n”);

    Case 2.0: printf(“**\n”); } case 2: printf(“**\n”);}

    C) switch(a+b) D) switch(a+b)

    { case 1: printf(“*\n”); {case 1: printf(*\n”);

    case 2+1: printf(“**\n”);} case c: printf(“**\n”);}

    20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是

    A)main() B) float fun(int a,int b){……}

    {……x=fun(2,10);……} main()

    float fun(int a,int b){……} {……x=fun(i,j);……}

    C)float fun(int,int); D) main()

    main() { float fun(int i,int j);

    {……x=fun(2,10);……} ……x=fun(i,j);……}

    float fun(int a,int b){……} float fun(int a,int b){……}

    21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是

    A)(!E=0)

    B) (E>0||E<0)

    C) (E==0)

    D) (E!=0)

    22)要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是

    A) while((ch=getchar())!='N') printf(“%c”,ch);

    B) while(ch=getchar()!='N') printf(“%c”,ch);

    C) while(ch=getchar()==N') printf(“%c”,ch);

    D) while((ch=getchar())=='N') printf(“%c”,ch);

    23)已定义以下函数

    int fun(int *p)

    {return *p;}

    fun 函数返回值是

    A)不确定的值

    B)一个整数

    C)形参p中存放的值

    D)形参p的地址值

    24)若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是

    A)*p=&a; scanf(“%lf”,p);

    B)*p=&a; scanf(“%f”,p);

    C) p=&a; scanf(“%lf”,*p);

    D)p=&a; scanf(“%lf”,p);

    25)现有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向一个链表中连续的三个结点。

    struct node

    {

    char data;

    struct node *next;

    }*p,*q,*r;

    现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是

    A)q->next=r->next; p->next=r; r->next=q;

    B) p->next=r; q->next=r->next; r-.next=q;

    C) q->next=r->next; r->next=q; p->next=r;

    D) r->next=q; p-next=r; q-next=r->next;

    26)有以下程序段

    struct st

    { int x; int *y;}*pt:

    int a[]={1,2},b[]={3,4};

    struct st c[2]={10,a,20,b};

    pt=c;

    以下选项中表达式的值为11的是

    A) *pt->y

    B) pt->x

    C) ++pt->x

    D) (pt++)->x

    27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为

    A)EOF

    B)非0值

    C) 0

    D)NULL

    28)设有以下语句

    int a=1,b=2,c;

    c=a^(b<<2);

    执行后,c的值为

    A)6

    B) 7

    C) 8

    D) 9

    29)有以下程序

    #include

    main()

    {

    char c1,c2,c3,c4,c5,c6;

    scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);

    c5=getchar(); c6=getchar();

    putchar(c1); putchar(c2);

    printf(“%c%c\n”,c5,c6);

    }

    程序运行后,若从键盘输入(从第1列开始)

    123<回车>

    45678<回车>

    则输出结果是

    A)1267

    B)1256

    C) 1278

    D)1245

    30)若有以下程序

    main()

    {int y=10;

    while(y- -); printf(“y=%d\n”y);

    }

    程序运行后的输出结果是

    A)y=0

    B)y=-1

    C) y=1

    D)while构成无限循环

    31)有以下程序

    main()

    {

    int a=0,b=0,c=0,d=0;

    if(a=1) b=1;c=2;

    else d=3;

    printf(“%d,%d,%d,%d\n”,a,b,c,d);

    }

    程序输出

    A)0,1,2,0

    B) 0,0,0,3

    C)1,1,2,0

    D)编译有错

    32)有以下程序

    main()

    {

    int i,j,x=0;

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

    { x++;

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

    {

    if(j%2) continue;

    x++;

    }

    x++;

    }

    printf(“x=%d\n”,x);

    }

    程序执行后的输出结果是

    A)x=4

    B) x=8

    C) x=6

    D) x=12

    33)有以下程序

    int fun1(duoble a){return a*=a;}

    int fun2(dpuble x,double y)

    {

    double a=0,b=0;

    a=fun1(x); b=fun1(y); return (int)(a+b);

    }

    main()

    {double w; w=fun2(1.1,2.0);……}

    程序执行后变量w中的值是

    A)5.21

    B) 5

    C) 5.0

    D) 0.0

    34)有以下程序

    main()

    {

    int i,t[][3]={9,8,7,6,5,4,3,2,1};

    for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);

    }

    程序的执行后的输出结果是

    A)7 5 3

    B) 3 5 7

    C)3 6 9

    D)7 5 1

    35)有以下程序

    fun(char p[][10])

    {int n=0,i;

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

    if(p[i][0]=='T') n++;

    return n;

    }

    main()

    {

    char str[][10]={“Mon”, “Tue”, “Wed”, “Thu”,”Fri”,”Sat”,”Sun”};

    printf(“%d\n”,fun(str));

    }

    程序执行后的输出结果是

    A)1

    B) 2

    C)3

    D) 0

    36有以下程序

    main()

    {

    int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

    for(i=0;i<9;i+=2) s+=*(t+i);

    printf(“%d\n”,s);

    }

    程序执行后的输出结果是

    A)45

    B)20

    C)25

    D)36

    37)有以下程序

    void fun1(char *p)

    {

    char *q;

    q=p;

    while(*q!='\0')

    { (*q)++; q++; }

    }

    main()

    { char a[]={“Program”},*p;

    p=&a[3]; fun1(p); printf(“%s\n”,a);

    }

    程序执行后的输出结果是

    A)P rohsbn

    B)Prphsbn

    C)Progsbn

    D)Program

    38)有以下程序

    void swap(char *x,char *y)

    {

    char t;

    t=*x; *x=*y; *y=t;

    }

    main()

    {

    char *s1=”abc”,*s2=”123”;

    swap(s1,s2); printf(“%s,%s\n”,s1,s2);

    }

    程序执行后的输出结果是

    A)123,abc

    B) abc,123

    C)1bc,a23

    D) 321,cba

    39)有以下程序

    int fun(int n)

    {

    if(n==1) return 1;

    else

    return (n+fun(n-1));

    }

    main()

    {

    int x;

    scanf(“%d”,&x); x=fun(x); printf(“%d\n”,x);

    }

    程序执行时,给变量x输入10,程序的输出结果是

    A)55

    B) 54

    C) 65

    D) 45

    40)有以下程序

    int fun(int x[],int n)

    {static int sum=0,i;

    for(i=0;i sum+=x[i];

    return sum;

    }

    main()

    {int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

    s=fun(a,5)+fun(b,4); printf(“%d\n”,s);

    }

    程序执行后的输出结果是

    A)45

    B)50

    C)60

    D)55

    41)有以下程序

    main()

    {

    union {

    char ch[2];

    int d;

    }s;

    s.d=0x4321;

    printf(“%x,%x\n”,s.ch[0],s.ch[1]);

    }

    在16位编译系统上,程序执行后的输出结果是

    A)21,43

    B)43,21

    C)43,00

    D)21,00

    42)有以下程序

    main()

    {

    char *p[]={“3697”,”2584”};

    int i,j; long num=0;

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

    {j=0;

    while(p[i][j]!='\0')

    { if((p[i][j]-‘0')%2)num=10*num+p[i][j]-‘0';

    j+=2;

    } }

    printf(“%d\n”num);

    }

    程序执行后的输出结果是

    A)35

    B)37

    C)39

    D)3975

    43)执行以下程序后,test.txt文件的内容是(若文件能正常打开)

    #include

    main()

    {

    FILE *fp;

    char *s1=”Fortran”,*s2=”Basic”;

    if((fp=fopen(“test.txt”,”wb”))==NULL)

    { printf(“Can't open test.txt file\n”); exit(1);}

    fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/

    fseek(fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/

    fwrite(s2,5,1,fp);

    fclose(fp);

    }

    A)Basican

    B)BasicFortran

    C)Basic

    D)FortranBasic

    44)以下叙述中错误的是

    A)C语言源程序经编译后生成后缀为.obj的目标程序

    B)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

    C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

    D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

    45)以下叙述中错误的是

    A)算法正确的程序最终一定会结束

    B)算法正确的程序可以有零个输出

    C)算法正确的程序可以有零个输入

    D)算法正确的程序对于相同的输入一定有相同的结果

    46)以下叙述中错误的是

    A)C程序必须由一个或一个以上的函数组成

    B)函数调用可以作为一个独立的语句存在

    C)若函数有返回值,必须通过return语句返回

    D)函数形参的值也可以传回对应的实参

    47)设有以下定义和语句

    char str[20]=”Program”,*p;

    p=str;

    则以下叙述中正确的是

    A)*p与str[0]中的值相等

    B)str与p的类型完全相同

    C)str数组长度和p所指向的字符串长度相等

    D)数组str中存放的内容和指针变量p中存放的内容相同

    48)以下叙述中错误的是

    A)C程序中的#include和#define行均不是C语句

    B)除逗号运算符外,赋值运算符的优先级最低

    C)C程序中,j++;是赋值语句

    D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

    49)以下叙述中正确的是

    A)预处理命令行必须位于C源程序的起始位置

    B)在C语言中,预处理命令行都以“#”开头

    C)每个C程序必须在开头包括预处理命令行:#include

    D)C语言的预处理不能实现宏定义和条件编译的功能

    50)以下叙述中错误的是

    A)可以通过typedef增加新的类型

    B)可以用typedef将已存在的类型用一个新的名字来代表

    C)用typedef定义新的类型名后,原有类型名仍有效

    D)用typedef可以为各种类型起别名,但不能为变量起别名

    二:填空题(每空2分,共40分)

    请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分

    1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为_______[1]________。

    2)在面向对象方法中,_____[2]______描述的是具有相似属性与操作的一组对象。

    3)在关系模型中,把数据看成是二维表,每一个二维表称为一个___[3]_____。

    4)程序测试分为静态分析和动态测试,其中__[4]______是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

    5)数据独立性分为逻辑独立性与物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为_[5]______。

    6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句__[6]____。

    7)以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a。 请填空。

    main()

    {

    float a,b,c;

    scanf(“%f%f%f”,&a,&b,&c);

    if(__[7]__)printf(“YES\n”);/*a,b,c能构成三角形*/

    else printf(“NO\n”);/*a,b,c不能构成三角形*/

    }

    8)以下程序的输出结果是__[8]_____

    main()

    { int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

    for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];

    printf(“%d\n”,s);

    }

    9)当运行以下程序时,输入abcd,程序的输出结果是:_[9]____。

    insert(char str[])

    { int i;

    i=strlen(str);

    while(i>0)

    { str[2*i]=str[i]; str[2*i-1]='*';i--;}

    printf(“%s\n”,str);

    }

    main()

    {char str[40];

    scanf(“%s”,str ); insert(str);

    }

    10)以下程序的运行结果是:__[10]____

    fun(int t[],int n)

    { int i,m;

    if(n==1) return t[0];

    else

    if(n>=2) {m=fun(t,n-1); return m;}

    }

    main()

    {

    int a[]={11,4,6,3,8,2,3,5,9,2};

    printf(“%d\n”,fun(a,10));

    }

    11)现有两个C程序文件T18.c和myfun.c同时在TC系统目录(文件夹)下,其中T18.c文件如下:

    #include

    #include”myfun.c”

    main()

    { fun(); printf(“\n”); }

    myfun.c文件如下:

    void fun()

    { char s[80],c; int n=0;

    while((c=getchar())!='\n') s[n++]=c;

    n--;

    while(n>=0) printf(“%c”,s[n--]);

    }

    当编译连接通过后,运行程序T18时,输入Thank!则输出的结果是:___[11] 。

    12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为Hello!, c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。

    char *fun(char *str,char c)

    { int n=0;char *p=str;

    if(p!=NULL)

    while(p[n]!=c&&p[n]!='\0') n++;

    if(p[n]=='\0' return NULL;

    return (_[12]_);

    }

    13)以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

    main()

    { int i,j;

    for(i=0;__[13]__;i++)

    { j=i*10+6;

    if(_[14]____) continue;

    printf(“%d ”,j);

    }

    }

    14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空

    int isprime(int a)

    { int i;

    for(i=2;i<=a/2;i++)

    if(a%i==0) __[15]___;

    __[16]___;

    }

    15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,输入整数5时(注意:n不得大于10),程序运行结果如下:

    A B C D E

    F G H I

    J K L

    M N

    O

    请填空完成该程序。

    main()

    { int i,j,n; char ch='A';

    scanf(“%d”,&n);

    if(n<11)

    {

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

    { for(j=1;j<=n-i+1;j++)

    { printf(“%2c”,ch);

    ___[17]____;

    }

    【18】

    }

    }

    else printf(“n is too large!\n”);

    printf(“\n”);

    }

    16)以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。

    #include

    typedef struct node /*链表结点结构*/

    { char sub[3];

    Struct node *next;

    }Node;

    Node fun(char s) /*建立链表*/

    { …… }

    void disp(Node *h)

    {

    Node *p;

    p=h->next;

    While(【19】)

    {

    printf(“%s\n”,p->sub); p=【20】;}

    }

    main()

    {

    Node *hd;

    hd=fun(); disp(hd); printf(“\n”);
    }

    答案
    一、选择题
    1-10 : DADBA DCDAC
    11-20:CCADD BBBCA
    21-30:CABDD CBDDD
    31-40:DBCBB CACAC
    41-50:ACADB DADBA

    二、填空题
    1、45
    2、类
    3、关系
    4、静态分析
    5、物理独立性
    6、printf("a=%d,b=%d",a,b)
    7、(a+b>c)&&(a+c>b)&&(b+c>a)
    8、30
    9、a*b*c*d*
    10、11
    11、!knahT
    12、p+n 或 str+n
    13、i<=9 或 i<10
    14、j%3!=0
    15、return 0
    16、return 1
    17、ch=ch+1
    18、printf("\n")
    19、p!=NULL
    20、p->next

    二、20分求计算机二级机c语言试题库,要最新的,谢谢了

    2011年计算机二级考试C语言十套上机题
     1.填空题
      请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。
      例如:str1=“How do”,str2=“ you do?”,结果输出:How do you do?
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #include
      #define N 40
      void fun(char *str1,char *str2)
      {
      int i=0;
      char *p1=str1;
      char *p2=str2;
      while(【1】)
      i++;
      for( ;【2】;i++)
      *(p1+i)=【3】;
      *(p1+i)='\0';
      }
      main()
      {
      char str1[N],str2[N];
      clrscr();
      printf("*****Input the string str1 &
      str2*****\n");
      printf(" \nstr1:");
      gets(str1);
      printf(" \nstr2:");
      gets(str2);
      printf("**The string str1 & str2**\n");
      puts(str1);
      puts(str2);
      fun(str1,str2);
      printf("*****The new string *****\n");
      puts(str1);
      }
      答案及评析:
      【1】*(p1+i) 【2】*p2 【3】*p2++
      【解析】填空1:变量i用来记录字符串str1的长度,当指针指到字符串str1结束标志符‘\0'时,while循环结束,变量i停止累加。填空2:指针p2指向字符串str2,通过for循环将字符串str2接在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符‘\0'。填空3:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将字符串str2接在str1后面的功能。

    1.填空题
      请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。
      例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,
      10.0,16.0},结果为:avg=15.030000。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #include
      double fun(double x[10])
      {
      int i;
      long t;
      double avg=0.0;
      double sum=0.0;
      for(i=0;i<10;i++)
      【1】;
      avg=sum/10;
      avg=【2】;
      t=【3】;
      avg=(double)t/100;
      return avg;
      }
      main()
      {
      double avg,x[10]={15.6,19.9,16.7,15.2,
      18.3,12.1,15.5,11.0,10.0,16.0};
      int i;
      clrscr();
      printf("\nThe original data is :\n");
      for(i=0;i<10;i++)
      printf("%6.1f",x[i]);
      printf("\n\n");
      avg=fun(x);
      printf("average=%f\n\n",avg);
      }
      答案及评析:
      【1】sum+=x[i] 【2】avg*1000 【3】(avg+5)/10
      【解析】填空1:通过for循环求出10个数的累加和,存于变量sum中。填空2:为了实现四舍五入保留两位小数的功能,应将平均值先扩大1000倍。填空3:将平均值加上5,再除以10,实现四舍五入的功能。
    1.填空题
      请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。
      例如,输入:“A=abc+5*c”,结果为:a=2,b=1,c=2。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #include
      #define N 100
      void fun(char *tt,int alf[])
      {
      int i;
      char *p=tt;
      for(i=0;i<26;i++)
      【1】;
      while(*p)
      {
      if(*p>='A'&&*p<='Z')
      【2】;
      if(*p>='a'&&*p<='z')
      alf[*p-'a']++;
      【3】;
      }
      }
      main()
      {
      char str[N];
      char a='a';
      int alf[26],k;
      clrscr();
      printf("\nPlease enter a char string:");
      scanf("%s",str);
      printf("\n**The original string**\n");
      puts(str);
      fun(str,alf);
      printf("\n**The number of letter**\n");
      for(k=0;k<26;k++)
      {
      if(k%5==0)
      printf("\n");
      printf("%c=%d ",a+k,alf[k]);
      }
      printf("\n");
      }
      答案及评析:
      【1】alf[i]=0 【2】*p+=32 【3】p++
      【解析】填空1:数组alf[26]用来存放字母字符出现的次数,在使用之前需要清零。填空2:题目要求不区分大小写,所以可以先将所有的大写字母都转换为对应的小写字母,然后一并记录出现的次数。将大写字母转换为对应的小写字母,只需将ASCII码加上32就可以了。填空3:指针p指向字符串tt,通过p自加1来移动指针,访问字符串中的所有字符。
    1.填空题
      请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。
      例如,输入aeiouAOUpqrt,结果为A:2 E:1 I:1 O:2 U:2 other:4。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #include
      #define N 100
      void fun(char *str,int bb[])
      {
      char *p=str;
      int i=0;
      for(i=0;i<6;i++)
      【1】;
      while(*p)
      {
      switch(*p)
      {
      case 'A':
      case 'a':bb[0]++;break;
      case 'E':
      case 'e':bb[1]++;break;
      case 'I':
      case 'i':bb[2]++;break;
      case 'O':
      case 'o':bb[3]++;break;
      case 'U':
      case 'u':bb[4]++;break;
      default:【2】;
      }
      【3】
      }
      }
      main()
      {
      char str[N],ss[6]="AEIOU";
      int i;
      int bb[6];
      clrscr();
      printf("Input a string: \n");
      gets(str);
      printf("the string is: \n");
      puts(str);
      fun(str,bb);
      for(i=0;i<5;i++)
      printf("\n%c:%d",ss[i],bb[i]);
      printf("\nother:%d",bb[i]);
      }
      答案及评析:
      【1】bb[i]=0 【2】bb[5]++ 【3】p++;
      【解析】填空1:数组bb[6] 用来存放5个元音字母和其他字符的个数,在使用之前需要清零。
      填空2:数组元素bb[5] 用来存放其他字符的个数,当指针p所指的字符不是元音字母时,则认为是其他字符,bb[5]加1。填空3:指针p指向字符串str,通过p自加1来移动指针,访问字符串中的所有字符。
    1.填空题
      str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。
      例如:str=“how do you do”,结果为:num=4。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #define N 80
      void fun(char *s,int *num)
      {
      int i,n=0;
      for(i=0;【1】;i++)
      {
      if(s[i]>=’a’&&s[i]<=’z’&&(s[i+1]==
      ’ ’||s[i+1]==’\0’))
      【2】;
      }
      【3】;
      }
      main()
      {
      char str[N];
      int num=0;
      printf("Enter a string:\n");
      gets(str);
      while(str[num])
      num++;
      fun(str,&num);
      printf("The number of word is :
      %d\n\n",num);
      }
      答案及评析:【1】i<*num 【2】n++ 【3】*num=n
      【解析】填空1:*num传入字符串的长度,所以for循环中变量i的变化范围是从0到*num-1。填空2:如果当前判断的字符是小写字母,并且它的下一个字符是空格或者是字符串结束标记符,则表示当前字符是一个单词的最后一个字母,统计单词数的变量n要加上1。填空3:题目要求结果由变量num传回,所以要将n的值赋给指针num所指的单元。
    1.填空题
      str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数fun(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。
      例如:str=“Bcd123e456hui890”,结果为:123456890。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #define N 80
      int bb[N];
      int fun(char s[],int bb[],int num)
      {
       int i,n=0;
       for(i=0;i   {
       if(【1】)
       {
       bb[n]=【2】;
       n++;
       }
       }
       return 【3】;
      }
      main()
      {
       char str[N];
       int num=0,n,i;
       printf("Enter a string:\n");
       gets(str);
       while(str[num])
       num++;
       n=fun(str,bb,num);
       printf("\nbb= ");
       for(i=0;i   printf("%d",bb[i]);}
      答案及评析:【1】s[i]>= ′0′ &&s[i]<= ′9′ 【2】s[i]- ′0′ 【3】n
      【解析】填空1:如果当前字符的ASCII码大于字符′0′的ASCII码,而小于字符′9′的ASCII码,则说明当前字符是数字字符。填空2:将数字字符转换为数字的方法是,用当前数字字符的ASCII码减去字符′0′的ASCII码。填空3:题目要求函数返回数组bb的长度,而变量n记录了数字字符的个数,也就是数组bb的长度,所以函数应该返回n。
    1.填空题
      从键盘输入一组无符号整数并保存在数组xx[N]中,以整数0结束输入,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入函数fun()。请补充函数fun(),该函数的功能是:从数组xx中找出个位和十位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。
      例如:当xx[8]={123,11,25,222,42,333,14,5451}时,
      bb[4]={25,42,333,5451}。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #define N 1000
      int fun(int xx[],int bb[],int num)
      {
      int i, n=0;
      int g, s;
      for(i=0;i
      {
      g=【1】;
      s=xx[i]/10 ;
      if((g+s)>5)
      【2】;
      }
      return【3】;
      }
      main()
      {int xx[N];
      int yy[N];
      int num=0,n=0,i=0;
      printf("Input number :\n");
      do
      {
      scanf("%u",&xx[num]);
      }
      while(xx[num++]!=0);
      n=fun(xx,yy,num);
      printf("\nyy=");
      for(i=0;i
      printf("%u ",yy[i]);
      }答案及评析:【1】xx[i] 【2】bb[n++]=xx[i] 【3】n
      【解析】填空1:将一个整数对10取余,则得到这个整数的个位数,将一个整数除以10再对10取余,则得到这个整数的十位数。由程序可以看出,变量s保存了整数的十位数,所以应该将整数的个位数保存于变量g中。填空2:当整数的个位与十位的数字之和大于5时,则将这个整数存于数组bb中,同时,变量n记录了满足条件的无符号整数的个数。填空3:题目要求满足条件的无符号整数的个数由fun函数返回,所以函数返回n。
    1.填空题
      请补充函数fun(),该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #include
      char *fun(int n)
      {
      int g,s,b;
      g=n%10;
      s=n/10%10;
      b=【1】;
      if((g+b)==s)
      return【2】;
      else
      return【3】;
      }
      main()
      {
      int num=0;
      clrscr();
      printf("******Input data *******\n");
      scanf("%d",&num);
      printf("\n\n\n");
      printf("****** The result *******\n");
      printf("\n\n\n%s",fun(num));
      }
      答案及评析:【1】n/100%10 【2】″yes!″ 【3】″no!″
      【解析】填空1:由程序可以知道,变量g保存了整数的个位数,变量s保存了整数的十位数,所以变量b应该保存整数的百位数。将整数除以100再对10取余,则得到这个整数的百位数。填空2:当个位数字和百位数字之和等于十位数字时,则返回″yes!″。填空3:当个位数字和百位数字之和不等于十位数字时,则返回″no!″。
    1.填空题
      请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。
      例如:当str1=“cdefghij”,然后输入4,则str2=“cdef”。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #include
      #define LEN 80
      main()
      {
      char str1[LEN],str2[LEN];
      int n,i;
      clrscr();
      printf("Enter the string:\n");
      gets(str1);
      printf("Enter the position of the string
      deleted:");
      scanf(【1】);
      for(i=0;i  【2】
      str2[i]=’\0’;
      printf("The new string is:%s\n",【3】);
      }
      答案及评析:【1】″%d″,&n 【2】str2[i]=str1[i]; 【3】str2
      【解析】填空1:本题考查对标准输入函数scanf()的调用格式,由后面的程序可以知道,变量n保存了要截取的字符数,注意在n前面不要忘了取址符‘ &’。填空2:截取前n个字符,就是将字符串str1的前n个字符依次赋给字符串str2的前n个字符。填空3:本题考查对标准输出函数printf()的调用格式,根据题意,应输出截取后的字符串,即字符串str2。
     1.填空题
      请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。例如,当str1=“cdefghij”,则str2=“cegi”。
      注意:部分源程序给出如下。
      请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
      试题程序:
      #include
      #include
      #define LEN 80
      main()
      {
      char str1[LEN],str2[LEN];
      char *p1=str1,*p2=str2;
      int i=0,j=0;
      clrscr();
      printf("Enter the string:\n");
      scanf(【1】);
      printf("***the origial string***\n");
      while(*(p1+j))
      {
      printf("【2】",*(p1+j));
      j++;
      }
      for(i=0;i  *p2++=*(str1+i);
      *p2=’\0’;
      printf("\nThe new string is:%s\n",【3】);
      }
      答案及评析:【1】″%s″,str1 【2】%c 【3】str2
      【解析】填空1:本题考查对标准输入函数scanf()的调用格式,当输入字符串时,格式控制字符串为″%s″,题目要求输入的字符串保存在str1中,所以地址表列应为字符串的首地址,即为str1。填空2:本题考查对标准输出函数printf()的调用格式,当输出为字符型变量时,格式控制字符串为″%c″。填空3:题目要求将str1中下标为偶数的字符保存在字符串str2中并输出,所以printf()函数的输出表列是str2

    三、c语言二级考试题及答案

    2011年3月全国计算机等级考试二级笔试试卷
    C语言程序设计
    (考试时间90分钟,满分100分)

    一、 选择题(1-10,21-40每题2分,11-20每题1分,共70分)
      
    (1)下列关于栈叙述正确的是
      A)栈顶元素最先能被删除
      B)栈顶元素最后才能被删除
      C)栈底元素永远不能被删除
      D)以上三种说法都不对
      
    (2)下列叙述中正确的是
      A)有一个以上根结点的数据结构不一定是非线性结构
      B)只有一个根结点的数据结构不一定是线性结构
      C)循环链表是非线性结构
      D)双向链表是非线性结构
      
    (3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)
      A)3 B)4 C)6 D)7
      
    (4)在软件开发中,需求分析阶段产生的主要文档是
      A)软件集成测试计划 B)软件详细设计说明书
      C)用户手册 D)软件需求规格说明书
      
    (5)结构化程序所要求的基本结构不包括
      A)顺序结构 B)GOTO跳转
      C)选择(分支)结构 D)重复(循环)结构
      
    (6)下面描述中错误的是
      A)系统总体结构图支持软件系统的详细设计
      B)软件设计是将软件需求转换为软件表示的过程
      C)数据结构与数据库设计是软件设计的任务之一
      D)PAD图是软件详细设计的表示工具
      
    (7)负责数据库中查询操作的数据库语言是
      A)数据定义语言
      B)数据管理语言
      C)数据操纵语言
      D)数据控制语言
      
    (8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是
      A)1:1联系 B)1:m联系
      C)m:1联系 D)m:n联系

    (9)有三个关系R、S和T如下:
      

      则由关系R和S得到关系T的操作是
      A)自然连接 B)交 C)除 D)并
      
    (10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
      A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}
      
    (11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
      A)C语言程序仅可以编译执行
      B)C语言程序仅可以解释执行
      C)C语言程序既可以编译执行又可以解释执行
      D)以上说法都不对
      
    (12)以下叙述中错误的是
      A)C语言的可执行程序是由一系列机器指令构成的
      B)用C语言编写的源程序不能直接在计算机上运行
      C)通过编译得到的二进制目标程序需要连接才可以运行
      D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
      
    (13)以下选项中不能用作C程序合法常量的是
      A)1,234 B)'123'
      C)123 D)"\x7G"
      
    (14)以下选项中可用作C程序合法实数的是
      A).1e0 B)3.0e0.2
      C)E9 D)9.12E
      
    (15)若有定义语句:inta=3,b=2,c=1;,以下选项中错误的赋值表达式是
      A)a=(b=4)=3; B)a=b=c+1;
      C)a=(b=4)+c; D)a=1+(b=c=4);
      
    (16)有以下程序段
      char name[20];
      int num;
      scanf("name=%s num=%d",name;&num);
      当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为
      A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001
      
    (17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是
      A)必须是逻辑值 B)必须是整数值
      C)必须是正数 D)可以是任意合法的数值

    (18)有以下程序
      #include
      main()
      { int x=011;
      printf("%d\n",++x);
      }
      程序运行后的输出结果是
      A)12 B)11 C)10 D)9
     
    (19)有以下程序
      #include
      main()
      { int s;
      scanf("%d",&s);
      while(s>0)
      { switch(s)
      { case1:printf("%d",s+5);
      case2:printf("%d",s+4); break;
      case3:printf("%d",s+3);
      default:printf("%d",s+1);break;
      }
      scanf("%d",&s);
      }
      }
      运行时,若输入1 2 3 4 5 0<回车>,则输出结果是
      A)6566456 B)66656 C)66666 D)6666656
      
    (20)有以下程序段
      int i,n;
      for(i=0;i<8;i++)
      { n=rand()%5;
      switch (n)
      { case 1:
      case 3:printf("%d\n",n); break;
      case 2:
      case 4:printf("%d\n",n); continue;
      case 0:exit(0);
      }
      printf("%d\n",n);
      }
      以下关于程序段执行情况的叙述,正确的是
      A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作
      C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行
     
    (21)有以下程序
      #include
      main()
      { char s[]="012xy\08s34f4w2";
      int i,n=0;
      for(i=0;s[i]!=0;i++)
      if(s[i]>='0'&&s[i]<='9') n++;
      printf("%d\n",n);
      }
      程序运行后的输出结果是
      A)0 B)3 C)7 D)8

    (22)若i和k都是int类型变量,有以下for语句
      for(i=0,k=-1;k=1;k++) printf("*****\n");
      下面关于语句执行情况的叙述中正确的是
      A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环
      
    (23)有以下程序
      #include
      main()
      { char b,c; int i;
      b='a'; c='A';
      for(i=0;i<6;i++)
      { if(i%2) putchar(i+b);
      else putchar(i+c);
      } printf("\n");
      }
      程序运行后的输出结果是
      A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef
      
    (24)设有定义:doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是
      A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));
      C)scanf("%lf",p+6); D)scanf("%lf",p[6]);
      
    (25)有以下程序(说明:字母A的ASCII码值是65)
      #include
      void fun(char *s)
      { while(*s)
      { if(*s%2) printf("%c",*s);
      s++;
      }
      }
      main()
      { char a[]="BYTE";
      fun(a); printf("\n");
      }
    程序运行后的输出结果是
    A) BY B) BT C) YT D) YE
      
    (26)有以下程序段
      #include
      main()
      { …
      while( getchar()!='\n');
      …
      }
      以下叙述中正确的是
    A)此while语句将无限循环
    B) getchar()不可以出现在while语句的条件表达式中
      C)当执行此while语句时,只有按回车键程序才能继续执行
      D)当执行此while语句时,按任意键程序就能继续执行

    (27)有以下程序
      #include
      main()
      { int x=1,y=0;
      if(!x) y++;
      else if(x==0)
      if (x) y+=2;
      else y+=3;
      printf("%d\n",y);
      }
      程序运行后的输出结果是
      A)3 B)2 C)1 D) 0

    (28)若有定义语句:chars[3][10],(*k)[3],*p;,则以下赋值语句正确的是
      A)p=s; B)p=k; C)p=s[0]; D)k=s;
      
    (29)有以下程序
      #include
      void fun(char *c)
      { while(*c)
      { if(*c>='a'&&*c<='z') *c=*c-('a'-'A');
      c++;
      }
      }
      main()
      { char s[81];
      gets(s); fun(s); puts(s):
      }
      当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是
      A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing
      
    (30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
      #include
      #define N 10
      void fun(int x[N])
      { int i=0;
      while(i<>
      }
      在程序中下划线处应填入的是
      A)x+i B)&x[i+1]C)x+(i++) D)&x[++i]
      
    (31)有以下程序
      #include
      main()
      { char a[30],b[30];
      scanf("%s",a);
      gets(b);
      printf("%s\n %s\n",a,b);
      }
      程序运行时若输入:
      how are you? I am fine<回车>
      则输出结果是
      A)how are you? B)how I am fine are you? I am fine
      C)how are you? I am fine D)row are you?
      
    (32)设有如下函数定义
      int fun(int k)
      { if (k<1) return 0;
      else if(k==1) return 1;
      else return fun(k-1)+1;
      }
      若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是
      A)2 B)3 C)4 D)5
      
    (33)有以下程序
      #include
      int fun (int x,int y)
      { if (x!=y) return ((x+y);2);
      else return (x);
      }
      main()
      { int a=4,b=5,c=6;
      printf("%d\n",fun(2*a,fun(b,c)));
      }
      程序运行后的输出结果是 A)3 B)6 C)8 D)12

    (34)有以下程序
      #include
      int fun()
      { static int x=1;
      x*=2;
      return x;
      }
      main()
      { int i,s=1;
      for(i=1;i<=3;i++) s*=fun();
      printf("%d\n",s);
      }
      程序运行后的输出结果是 A)0 B)10 C)30 D)64
      
    (35)有以下程序
      #include
      #define S(x) 4*(x)*x+1
      main()
      { int k=5,j=2;
      printf("%d\n",S(k+j));
      }
      程序运行后的输出结果是 A)197 B)143 C)33 D)28
      
    (36)设有定义:struct {charmark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是
      A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;
      
    (37)有以下程序
      #include
      struct ord
      { int x,y;}dt[2]={1,2,3,4};
      main()
      {
      struct ord *p=dt;
      printf("%d,",++(p->x));printf("%d\n",++(p->y));
      }
      程序运行后的输出结果是 A)1,2 B)4,1 C)3,4 D)2,3
      
    (38)有以下程序
      #include
      struct S
      { int a,b;}data[2]={10,100,20,200};
      main()
      { struct S p=data[1];
      printf("%d\n",++(p.a));
      }
      程序运行后的输出结果是 A)10 B)11 C)20 D)21
      
    (39)有以下程序
      #include
      main()
      { unsigned char a=8,c;
      c=a>>3;
      printf("%d\n",c);
      }
      程序运行后的输出结果是 A)32 B)16 C)1 D)0
      
    (40)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是
      A)写操作结束后可以从头开始读 B)只能写不能读
      C)可以在原有内容后追加写 D)可以随意读和写

    二、填空题
    (1)有序线性表能进行二分查找的前提是该线性表必须是 【1】 存储的。

    (2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】 。

    (3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】 测试

    (4)实体完整性约束要求关系数据库中元组的 【4】 属性值不能为空。

    (5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称 【5】 是关系A的外码。

      
    (6)以下程序运行后的输出结果是 【6】。
      #include
      main()
      { int a;
      a=(int)((double)(3/2)+0.5+(int)1.99*2);
      printf("%d\n",a);
      }
      
    (7)有以下程序
      #include
      main()
      { int x;
      scanf("%d",&x);
      if(x>15) printf("%d",x-5);
      if(x>10) printf("%d",x);
      if(x>5) printf("%d\n",x+5);
      }
      若程序运行时从键盘输入12<回车>,则输出结果为 【7】 。
      
    (8)有以下程序(说明:字符0的ASCII码值为48)
      #include
      main()
      { char c1,c2;
      scanf("%d",&c1);
      c2=c1+9;
      printf("%c%c\n",c1,c2);
      }
      若程序运行时从键盘输入48<回车>,则输出结果为 【8】 。
      
    (9)有以下函数
      void prt(char ch,int n)
      { int i;
      for(i=1;i<=n;i++)
      printf(i%6!=0?"%c":"%c\n",ch);
      }
      执行调用语句prt('*',24);后,函数共输出了 【9】 行*号。

    (10)以下程序运行后的输出结果是 【10】。
      #include
      main()
      { int x=10,y=20,t=0;
      if(x==y)t=x;x=y;y=t;
      printf("%d %d\n",x,y);
      }
      
    (11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。请填空。
      void fun(int a[N],int k)
      { int i;
      for(i=k;i
      }
      
    (12)有以下程序,请在 【12】 处填写正确语句,使程序可正常编译运行。
      #include
      【12】 ;
      main()
      { double x,y,(*p)();
      scanf("%lf%lf",&x,&y);
      p=avg;
      printf("%f\n",(*p)(x,y));
      }
      double avg(double a,double b)
      { return((a+b)/2);}
      
    (13)以下程序运行后的输出结果是 【13】。
      #include
      main()
      { int i,n[5]={0};
      for(i=1;i<=4;i++)
      { n[i]==n[i-1]*2+1; printf("%d",n[i]); }
      printf("\n");
      }
      
    (14)以下程序运行后的输出结果是 【14】。
      #include
      #include
      #include
      main()
      { char *p; int i;
      p=(char *)malloc(sizeof(char)*20);
      strcpy(p,"welcome");
      for(i=6;i>=0;i--) putchar(*(p+i));
      printf("\n-"); free(p);
      }
      
    (15)以下程序运行后的输出结果是 【15】。
      #include
      main()
      { FILE *fp; int x[6]={1,2,3,4,5,6},i;
      fp=fopen("test.dat","wb");
      fwrite(x,sizeof(int),3,fp);
      rewind(fp);
      fread(x,sizeof(int),3,fp);
      for(i=0;i<6;i++) printf("%d",x[i]);
      printf("\n");
      fclose(fp);
      }

    2011年3月全国计算机等级考试二级笔试试卷
    C语言程序设计答案

    一.选择题1-5 ABDDB
    6-10 ACDCB 11-15 ADBAA
    16-20 ADCAD 21-25 BDBCD
    26-30 CDCCC 31-35 BBBDB
    36-40 CDDCB
    二,填空题
    1) 顺序 2) DEBFCA 3) 单元测试 4) 主键 5) D 6) 3 7) 1217
    8) 09 9) 4 10) 20 0 11) i-1 12) double avg(doublea,double b) 13) 13715
    14) e(E)moclew 15) 123456
    2010年9月全国计算机等级考试二级C笔试试卷答案
    一、选择题
    1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB
    21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD

    二、填空
    1.1DCBA2345 2.n-1 3.25 4.结构化 5.物理设计 6.2008
    7.15 8.非0 9. 1 4 13 40 10.i 11.2
    12.a[row][col] 13.3 14.*s 15.FILE

    关于c语言二级考试的问题,通过《20分求计算机二级机c语言试题库,要最新的,谢谢了》、《c语言二级考试题及答案》等文章的解答希望已经帮助到您了!如您想了解更多关于c语言二级考试的相关信息,请到本站进行查找!

    本文标签:c语言二级考试(2)

    相关阅读

    关键词不能为空

    范文示例_作文写作_作文欣赏_故事分享_158文章网