精华内容
下载资源
问答
  • #include"stdio.h"#include"stdlib.h"#define m 6#define n 6#define maxsize 50int maze[m+2][n+2];typedef struct//试探方向{ int x,y;}item;item move [4]={{0,1},{1,0},{0,...typedef struct//栈元素设计{int x,...

    #include"stdio.h"

    #include"stdlib.h"

    #define m 6

    #define n 6

    #define maxsize 50

    int maze[m+2][n+2];

    typedef struct//试探方向

    { int x,y;

    }item;

    item move [4]={{0,1},{1,0},{0,-1},{-1,0}};

    typedef struct//栈元素设计

    {int x,y,d;

    }datetype;

    typedef struct//栈

    {datetype data[maxsize];

    int top;

    }SeqStack;

    SeqStack *Init_SeqStack()//置空栈

    {SeqStack *s;

    s=(SeqStack *)malloc(sizeof(SeqStack));

    s->top=0;return s;

    }

    int Empty_SeqStack(SeqStack *s)//判栈空

    {if(s->top==0)return 1;

    else return 0;

    }

    int Push_SeqStack(SeqStack *s,datetype x)//入栈

    {if(s->top==maxsize-1)return 0;

    else{s->top++;

    s->data[s->top]=x;return 1;}

    }

    int Pop_SeqStack(SeqStack *s,datetype *x)//出栈

    {if(Empty_SeqStack(s))return 0;

    else {*x=s->data[s->top];

    s->top--; return 1;}

    }

    int path(SeqStack *s)//寻找路径

    {

    datetype temp;

    int x,y,d,i,j;

    temp.x=1;temp.y=1;temp.d=-1;

    Push_SeqStack (s,temp);

    while (!Empty_SeqStack(s))

    {Pop_SeqStack (s,&temp);

    x=temp.x;y=temp.y;d=temp.d+1;

    while (d<4)

    {i=x+move[d].x;j=y+move[d].y;

    if (maze[i][j]==0)

    {temp.x=x;temp.y=y;temp.d=d;

    Push_SeqStack (s,temp);

    x=i;y=j;maze[x][y]=-1;

    if (x==m&&y==n)

    return 1;

    else d=0;

    }

    else d++;

    }

    }return 0;

    }

    void print(SeqStack *s)//输出栈

    {int i;

    for(i=1;i<=s->top;i++)

    {printf("{[%d,%d],%d}", s->data[i].x,s->data[i].y,s->data[i].d);

    if(itop)printf("→");

    if(i%3==0) printf("\n");

    }

    printf("\n");

    }

    int main()

    {SeqStack *s ;

    int i,k,j,w;

    do{

    printf(" 1--随机迷宫 \n");

    printf(" 0--退出 \n");

    scanf("%d",&w);

    switch(w)

    {case 1:for( i = 1; i <=m;i++ )

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

    {maze[i][j]=rand()%2;//随机数组

    }

    maze[1][1]=0;maze[6][6]=0;//入口和出口

    for(i=0;i

    {maze[i][0]=1;maze[i][n+1]=1;

    }

    for (j=0;j

    {maze[0][j]=1;maze[m+1][j]=1;

    }

    printf("随机生成的迷宫图为:\n\n");

    for(i=0;i

    {for(j=0;j

    printf("%2d ",maze[i][j]);

    printf("\n");

    }

    s=Init_SeqStack();

    k=path(s);

    if (k==1)

    {if(k==1)

    printf("迷宫有路:\n");

    print(s);

    for(i=0;i

    {for(j=0;j

    printf("%2d ",maze[i][j]);

    printf("\n");

    }}

    else

    printf("迷宫没路\n\n");

    break;

    }

    }while(w);

    展开全文
  • 《全国计算机等级考二级教程——C语言程序设计》习题分析与解答(二)--3 4 5《全国计算机等级考试二级教程——C语言程序设计》习题分析与解答(二)第三章 顺序结构习题分析与解答一、选择 (单选)3.1 【参考答案...

    《全国计算机等级考二级教程——C语言程序设计》习题分析与解答(二)--3 4 5

    《全国计算机等级考试二级教程——C语言程序设计》习题分析与解答(二)

    第三章 顺序结构习题分析与解答

    一、选择题 (单选题)

    3.1 【参考答案】 C)

    3.2 【参考答案】 C)

    3.3 【参考答案】 D)

    3.4 【参考答案】 C)

    3.5 【参考答案】 D)

    3.6 【参考答案】 B)

    3.7 【参考答案】 C)

    3.8 【参考答案】 C)

    3.9 【参考答案】 A)

    3.10 【参考答案】 B)

    3.11 【参考答案】 C)

    3.12 【参考答案】 D)

    3.13 【参考答案】 D)

    3.14 【参考答案】 A)

    3.15 【参考答案】 C)

    3.16 【参考答案】 C)

    3.17 【参考答案】 C)

    3.18 【参考答案】 D)

    3.19 【参考答案】 C)

    3.20 【参考答案】 B)

    二、 填空题

    3.21 【参考答案】 

    (1) -200,2500 (2) i=-200,j=2500

    (3) i=-200

    j=2500

    3.22 【参考答案】 [1] 12 [2] 0 [3] 0

    3.23 【参考答案】 [1] 一条语句 [2] 分号(或;)

    3.24 【参考答案】 分号(;)

    3.25 【参考答案】 

    [1]:100 25.82 1.89234

    [2]: 100 

    25.82 

    1.89234

    [3]:100 25.82 1.89234

    3.26 【参考答案】 x=127, x= 127, x= 177,x= 7f, x= 127

    3.27 【参考答案】 x=127, x=127 , x=$127 ,x=$ 000127, x=%06d

    3.28 【参考答案】 a=513.789215,a= 513.79,a= 513a= 513三、 编程题和改错题

    3.29 【分析与解答】 

    (1) 主函数名main后应有一对圆括号。

    (2) 变量定义语句中,v的前面缺逗号。

    (3) 第三行的printf语句用以提示输入,但是原样输出的字符串没有用双引号括起来;另外,从输入的形式看,输入的数据紧跟在提示之后,因此,printf格式串中最后不应该有换行符——\n。

    (4) 因为输入项a、b、c从定义和计算结果来看都是double类型,因此,第四行scanf语句格式串中的格式说明不应当用%d而应当用%lf;且每一个变量之前应该加地址运算符&。

    (5) 第七行的printf语句中应当把%d都改成%lf或%f;按输出要求在格式串中应添加相应的原样输出的字符;因为下一个printf的输出从新的一行开始,因此在本输出语句的格式串的最后应当加换行符——\n。

    (6) 第八行的printf语句中应当把格式串整理合并放在输出项的前面,输出项放在后面,%d都改成%lf或%f;中间的\n删去。

    (7) 请读者自己写出修改后的程序,并上机调试。

    3.30 【分析与解答】 

    (1) 分析:可用算术式560÷60把分钟换算成小时和分钟,商数就是小时数,余数就是分钟数。

    (2) 确定变量的名字和定义变量的类型:在程序中把小时数放在变量h中,把分钟数放在变量m中。这两个变量的类型可以是整型(本题中采用整型),也可以是实型。

    (3) 确定所用算法:求〖SX()560〖〗60〖SX〗〗的商数,在C语言中可以用整除的算法,语句是h=560/60;。求余数可用求余运算符 %:560%60,其值放入变量m中的语句是:m=560%60;。(4) 设计输出格式。若输出的形式定为:小时:分钟,则按此形式设计输出语句。

    (5) 把以上内容放在主函数的一对花括号中。

    (6) 编写程序如下:

    main()

    { int h, m;

    h=560/60;

    m=560%60;

    printf(″The result: %3d : %3d\n″, h,m); 

    } 

    运行结果是:

    The result: 9 : 20

    3.31 【分析与解答】 

    (1) 确定变量的

    展开全文
  • 2、程序是告诉计算机“做什么”和“怎么做”的一组指令。3、程序设计就是编写程序。简单的C语言程序随堂测验1、以下关于main函数的叙述中,错误的是()。A、main函数是自定义函数B、main函数可以有形式参数,也可以...

    第一单元 C语言概述

    程序设计语言和程序随堂测验

    1、程序设计语言是用于人和计算机之间进行通信的媒介。

    2、程序是告诉计算机“做什么”和“怎么做”的一组指令。

    3、程序设计就是编写程序。

    简单的C语言程序随堂测验

    1、以下关于main函数的叙述中,错误的是()。

    A、main函数是自定义函数

    B、main函数可以有形式参数,也可以没有形式参数

    C、main函数定义必须出现在一个源文件的开头

    D、在一个程序中只能有一个main函数

    2、下列叙述中正确的是()。

    A、main函数必须出现在其他函数之前

    B、程序总是从main函数的第一条语句开始执行

    C、main函数中至少有一条语句

    D、程序总是在执行完main函数的最后一条语句后结束

    3、以下符号中不能用做标识符的是()。

    A、_256

    B、scanf

    C、void

    D、Struct

    4、浮点数的数据类型有int、float、double。

    5、C语言中,变量无需区分大小写。

    基层开发环境简介和C语言程序的开发步骤随堂测验

    1、下列叙述中正确的是()。

    A、在编译时可以发现注释中的拼写错误

    B、C语言程序的每一行只能写一条语句

    C、int main(void){···}必须位于程序的开始处

    D、C语言程序可以由一个或多个函数组成

    2、“调试”与“测试”的一个共同目的是发现程序中的错误。

    第一单元测验

    1、软件是指()。

    A、程序

    B、程序和文档

    C、算法加数据结构

    D、程序、数据和相关文档的集合

    2、下列叙述中,不符合良好程序设计风格的是()。

    A、程序的效率第一,清晰第二

    B、程序的可读性好

    C、程序中有必要的注释

    D、输入数据前要有提示信息

    3、以下关于C语言源程序的叙述中,错误的是()。

    A、一个C源程序由若干个函数定义组成,其中必须有且仅能有一个名为main的函数定义

    B、在一个函数定义的函数体中允许定义另一个函数

    C、函数定义由函数头部和函数体两部分组成

    D、在一个函数定义中,函数体允许调用另一个函数或调用函数自身

    4、以下叙述中正确的是()。

    A、C程序的基本组成单位是语句

    B、C程序中每一行只能写一条语句

    C、简单C语句必须以分号结束

    D、C语句必须在一行内写完

    5、一个C程序的执行是从()。

    A、main函数开始,直到main函数结束

    B、第一个函数开始,直到最后一个函数结束

    C、第一个语句开始,直到最后一个语句结束

    D、main函数开始,直到最后一个函数结束

    6、一个C程序是由()。

    A、一个主程序和若干子程序组成

    B、一个或多个函数组成

    C、若干过程组成

    D、若干子程序组成

    7、C语言派程序的基本单位是()。

    A、过程

    B、函数

    C、子程序

    D、标识符

    8、计算机能直接执行的程序是()。

    A、源程序

    B、目标程序

    C、汇编程序

    D、可执行程序

    9、C语言源程序文件的后缀是(),经过编译后, 生成文件的后缀是(),经过连接后,生成文件的后缀是()。

    A、.exe;.obj;.c

    B、.c;.obj;.exe

    C、.dsp;.c;.exe

    D、.c;.obj;.dsp

    10、以下不正确的C语言标识符是()。

    A、ABC

    B、abc

    C、a_bc

    D、ab.c

    11、以下正确的C语言标识符是()。

    A、%x

    B、A+b

    C、a123

    D、test!

    12、C源程序中不能表示的数制是()。

    A、二进制

    B、八进制

    C、十进制

    D、十六进制

    13、编辑程序的功能是()。

    A、建立并修改程序

    B、将c源程序编译成目标程序

    C、调试程序

    D、命令计算机执行指定的操作

    14、软件调试的目的是()。

    A、发现错误

    B、改正错误

    C、改善软件的性能

    D、验证软件的正确性

    15、“调试”与“测试”的一个共同目的是发现程序中的错误。

    16、编辑与编译不是一回事。

    17、函数都必须返回一个值。

    18、注释内容太多不会影响程序的执行效率。

    19、C程序执行的入口是main函数,所以main函数必须放在程序的开头。

    20、定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

    21、所有的数学公式可以直接出现在源程序中。

    第一单元作业

    1、编写程序,输出“*******”。

    2、编写程序,输出自己名字的拼音。如:名字为李华,则输出“Li Hua”。

    第二单元 什么是算法

    初识算法随堂测验

    1、以下不属于算法的特征的是()。

    A、确切性

    B、无穷性

    C、可行性

    D、简洁性

    2、设计数据结构和算法()。

    A、数据结构就是程序

    B、算法+数据结构=程序

    C、算法=数据结构+程序

    D、算法就是程序

    3、算法中的每一个步骤都应当是确定的。

    4、一个算法不一定要有输出,但一定要有输入。

    5、算法中的每一个步骤都应当能有效执行,并得到确定的结果。

    经典算法举例随堂测验

    1、算法的时间复杂度是指()。

    A、算法的执行时间

    B、算法所处理的数据量

    C、算法程序中的语司或指令条数

    D、算法在执行过程中所需要的基本运算次数

    2、算法的空间复杂度是指()。

    A、算法在执行过程中所需要的计算机存储空间

    B、算法所处理的数据量

    C、算法程序中的语句或指令条数

    D、算法在执行过程中所需要的临时工作单元数

    3、衡量一个算法优劣的两个方面为算法占用的内存空间、执行算法耗用的时间。

    第二单元测验

    1、以下不属于算法的特征的是()。

    A、无穷性

    B、确切性

    C、可行性

    D、简洁性

    2、算法的有穷性是指()。

    A、算法程序的运行时间是有限的

    B、算法程序所处理的数据量是有限的

    C、算法程序的长度是有限的

    D、算法只能被有限的用户使用

    3、下列叙述中正确的是()。

    A、用C程序实现的算法必须要有输入和输出操作

    B、用C程序实现的算法可以没有输出但必须要有输入

    C、用C程序实现的算法可以没有输入但必须要有输出

    D、用C程序实现的算法可以既没有输入也没有输出

    4、以下叙述中错误的是()。

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

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

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

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

    5、关于算法,以下叙述中错误的是()。

    A、某个算法可能会没有输入

    B、一个算法对于某个输入的循环次数是可以事先估计出来的

    C、同一个算法对于相同的输入必能得出相同的结果

    D、任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕

    6、设计数据结构和算法()。

    A、数据结构就是程序

    B、算法+数据结构=程序

    C、算法=数据结构+程序

    D、算法就是程序

    7、下列叙述中正确的是()。

    A、一个算法的空间复杂度大,则其时间复杂性必定大

    B、一个算法的空间复杂度大,则其时间复杂性必定小

    C、一个算法的时间复杂度小,则其空间复杂性也必定小

    D、上述三种说法都不对

    8、下列叙述中正确的是()。

    A、算法的效率只与问题的规模有关,而与数据的存储结构无关

    B、算法的时间复杂度是指执行算法所需要的计算工作量

    C、数据的逻辑结构与存储结构是一一对应的

    D、算法的时间复杂度与空间复杂度一定相关

    9、算法的空间复杂度是指()。

    A、算法在执行过程中所需要的计算机存储空间

    B、算法所处理的数据量

    C、算法程序中的语句或指令条数

    D、算法在执行过程中所需要的临时工作单元数

    10、算法的时间复杂度是指()。

    A、算法的执行时间

    B、算法所处理的数据量

    C、算法程序中的语句或指令条数

    D、算法在执行过程中所需要的基本运算次数

    11、算法中的每一个步骤都应当是确定的。

    12、一个算法不一定要有输出,但一定要有输入。

    13、算法中的每一个步骤都应当能有效执行,并得到确定的结果。

    14、算法的表示方法有很多种,如自然语言、传统流程图等。

    15、简单来说,算法就是基于某种计算机语言,利用数据结构来解决具体问题的思路和方法。

    16、算法的特点之一是无穷性。

    17、描述算法的图形化方法之一就是程序流程图。

    18、可以用伪代码法描述算法。

    19、算法复杂度主要包括时间复杂度和空间复杂度。

    20、衡量一个算法优劣的两个方面为算法占用的内存空间、执行算法耗用的时间。

    第二单元作业

    1、输入一个数,判断这个数是不是奇数。例如: 输入:3 输出:该数是奇数

    2、输入一个数,判断这个数是否大于10。例如: 输入:3 输出:该数不大于10

    第三单元 数据类型与表达式

    数据类型随堂测验

    1、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是()

    A、int

    B、long

    C、float

    D、double

    2、下面正确的字符串常量是()

    A、‘a’

    B、‘376’

    C、"\n"

    D、376

    3、C语言字符串结束的标志是()

    A、“0”

    B、‘0’

    C、‘\0’

    D、0

    4、C语言中,字符数据用格式说明"%c"来输出,字符串数据用格式说明"%s"来输出。

    5、C语言中,关键字及编译预处理命令用小写字母书写。

    算术运算符和表达式随堂测验

    1、表达式17%4 /8的值为()

    A、0

    B、1

    C、2

    D、3

    2、C语言中要求参加运算的数必须是整数的运算符是( )。

    A、/

    B、-

    C、%

    D、=

    3、++运算符的操作数必须是变量。

    4、函数pow(x,y)的作用是计算y的x次方。

    关系运算符,逻辑运算符和逻辑表达式随堂测验

    1、判断 i 和 j 至少有一个值为非0的表达式是()

    A、i!=0&&j!=0

    B、i+j!=0

    C、i||j

    D、i&&j

    2、表达式 5>3>1 值是()

    A、0

    B、1

    C、3

    D、表达式语法错误

    3、为表示“a和b都不等于0”,应使用的C语言表达式是()

    A、(a!=0) || (b!=0)

    B、a || b

    C、a && b

    D、!(a=0)&&(b!=0)

    4、表达式语句和表达式没有什么区别。

    5、逗号表达式的值是第一个表达式的值。

    输入和输出随堂测验

    1、若a是基本整型变量,c是单精度实型变量,输入语句()是错误的

    A、scanf("%d,%f”, &a, &c);

    B、scanf("d=%d, c=%f”, &a, &c);

    C、scanf("%d%f”, &a, &c);

    D、scanf("%d%f”, a, c);

    2、程序员要想调用输入输出函数,需要在程序的开头写上语句()

    A、#include

    B、#include

    C、#include

    D、#include

    3、语句printf("%.2f",1.0/3);输出为0.33。

    4、C语言中不能用printf函数输出字符。

    第三单元测验

    1、下列合法的标识符是()

    A、case

    B、3con

    C、Li-da-yong

    D、$a

    2、下列选项中不正确的常数的选项是()

    A、0x12F

    B、-1.23E-2

    C、12.0

    D、0388

    3、已知int ii,ij,ik;scanf("%d%d%d",&ii,&ij,&ik);若希望从键盘输入并使得ii,ij,ik的值分别为1,2,3时,则错误的输入方式是()

    A、1(空格) 2(空格) 3

    B、1,2,3

    C、1(回车)2(回车)3

    D、1(回车)2(空格)3

    4、能正确表示逻辑关系" a ≥ 10 或 a ≤ 0 "的C语言表达式是()

    A、a>=10 or a<=0

    B、a>=0 | a<=10

    C、a>=10 && a<=0

    D、a>=10 || a<=0

    5、表达式 5>3>1 值是()

    A、0

    B、1

    C、3

    D、表达式语法错误

    6、以下能正确地定义整型变量a,b和c并为它们赋初值5的语句是()

    A、int a = b = c = 5;

    B、int a, b, c = 5;

    C、a = 5, b = 5, c = 5;

    D、int a = 5, b = 5, c = 5;

    7、如果变量x、y 已经正确定义,下列哪个选项的语句可以正确将x,y的值进行交换?

    A、x=x+y,y=x-y,x=x-y

    B、t=x,x=y,y=x

    C、t=y,y=x,x=y

    D、x=t,t=y,y=x

    8、执行printf("%x",100);后的输出结果是()

    A、100

    B、0x100

    C、0x64

    D、64

    9、阅读以下程序段,如果从键盘上输入1234567,则程序的运行结果是() int i,j; scanf("%3d%2d",&i,&j); printf("i = %d, j = %d\n",i,j);

    A、i=123,j=4567

    B、i=123,j=45

    C、i=1234,j=567

    D、i=1,j=2

    10、下面合法的C语言字符常量是()

    A、’\t’

    B、”A”

    C、65

    D、A

    11、在C 语言中,常量和变量都有数据类型。

    12、C语言中,在进行混合运算时,数据类型由高级向低级转换。

    13、C语言中,强制类型转换后,原变量的值和数据类型不变。

    14、增1减1运算符的前缀运算和后缀运算的表达式值是相同的。

    15、二元运算符均可以和赋值运算符构成复合的赋值运算符。

    16、程序中的“=”是赋值号,与数学中等号的功能相同。

    17、设变量已正确定义,执行以下程序段,顺序输入三个字符'Q',则输出Q。 ch=getchar(); putchar(ch);

    18、整数在存储时不会产生误差,实数在存储时也不会产生误差。

    19、C语言中,关键字及编译预处理命令用小写字母书写。

    20、用float定义的实型变量在内存占8个字节,输入/输出格式符是%f。

    第三单元作业

    1、本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式:输入在一行中给出2个正整数A和B。 输出格式:在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例:3 2 输出样例:3 + 2 =5 3 – 2 =1 3 * 2 =6 3 / 2 =1

    2、今天是星期一,两天后是星期三,5天后是星期六;今天是星期六,3天后是星期二。 输入格式:输入在一行中给出2个整数d和n,d表示今天是星期几(1<=d<=7),n表示几天后。 输出格式:在一行中输出星期几的值(1-7)。 输入样例:4 5 输出样例:5天后是星期2

    3、交换变量a,b的值。 输入格式:输入两个整数,之间用一个空格间隔。 输出格式:在一行中按照“a=x,b=y”的格式输出,其中x和y均是原样输出,不加宽度控制。 输入样例:3 7 输出样例:before:a=3,b=7 After:a=7,b=3

    4、本题要求编写程序,输出一个短句“Programming in C is fun!”。

    5、程序每次读入一个正3位数,然后输出按位逆序的数字。 输入格式:每个测试是一个3位的正整数。 输出格式:输出按位逆序的数。 输入样例:123 输出样例:321

    第三单元作业 2.0

    1、本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式:输入在一行中给出2个正整数A和B。 输出格式:在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例:3 2 输出样例:3 + 2 =5 3 – 2 =1 3 * 2 =6 3 / 2 =1

    2、今天是星期一,两天后是星期三,5天后是星期六;今天是星期六,3天后是星期二。 输入格式:输入在一行中给出2个整数d和n,d表示今天是星期几(1<=d<=7),n表示几天后。 输出格式:在一行中输出星期几的值(1-7)。 输入样例:4 5 输出样例:5天后是星期2

    3、交换变量a,b的值。 输入格式:输入两个整数,之间用一个空格间隔。 输出格式:在一行中按照“a=x,b=y”的格式输出,其中x和y均是原样输出,不加宽度控制。 输入样例:3 7 输出样例:before:a=3,b=7 After:a=7,b=3

    4、程序每次读入一个正3位数,然后输出按位逆序的数字。 输入格式:每个测试是一个3位的正整数。 输出格式:输出按位逆序的数。 输入样例:123 输出样例:321

    5、本题要求编写程序,输出一个短句“Programming in C is fun!”。

    第四单元 结构化程序设计

    顺序结构随堂测验

    1、若a、b、c、d都是int型变量且都已经正确赋初值,则以下不正确的赋值语句是()

    A、a+d;

    B、a++;

    C、a=b=c=d=100;

    D、a=(b=3)+(d=5);

    2、有如下定义 char w; int x; float y; double z; 请说明表达式 w*x+z-y 的类型是()

    A、float

    B、char

    C、int

    D、double

    3、程序的运行结果是() #include void main() { int a = 25; int b = 21; int m = 0; switch (a%3) { case 0:m++; break; case 1:m++; break; switch (b%2) { default:m++; case 0:m++; break; } } printf("%d\n", m); }

    A、1

    B、2

    C、3

    D、4

    选择结构随堂测验

    1、如果要求在if后一对括号中的表达式在表示a 不等于 0 的时候的值为“真”,则能正确表示这一关系的表达式为()

    A、a<>0

    B、!a

    C、a=0

    D、a

    2、下列程序段执行后s值为() int i=5, s=0; while(i--) if (i%2) continue; else s+=i;

    A、15

    B、6

    C、9

    D、10

    多分枝选择结构随堂测验

    1、为了避免嵌套的条件分支语句if-else二义性,C语言规定,C程序中的else总是与()组成配对关系

    A、缩排位置相同的if

    B、在其之前未配对的if

    C、在其之前未配对的最近的if

    D、同一行上的if

    2、下列程序段的输出结果是() int main(void) { 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); return 0; }

    A、a=2,b=1

    B、a=1,b=1

    C、a=1,b=0

    D、a=2,b=2

    选择结构应用举例随堂测验

    1、下列叙述中正确的是()

    A、break语句只能用于switch语句

    B、在switch语句中必须使用default

    C、break语句必须与switch语句中的case配对使用

    D、在switch语句中,不一定使用break语句

    2、下列程序段的输出结果是() int main(void) { int a = 2, b = -1, c = 2; if(a < b) if(b < 0) c = 0; else c++; printf("%d\n",c); return 0; }

    A、0

    B、1

    C、2

    D、3

    循环结构——while循环和do-while循环随堂测验

    1、设有程序段,则描述正确的是()。 int m=20; while (m=0) m=m++;

    A、while循环执行10次

    B、循环是无限循环

    C、循环语句一次也不执行

    D、循环执行一次

    2、do-while循环至少要执行一次循环语句。

    3、continue 不是结束本次循环,而是终止整个循环的执行。

    循环结构——for循环随堂测验

    1、下列程序段的功能是()。 #include int main (void) { int i, s = 0; for (i = 1; i < 10; i += 2) s += i + 1; printf("%d\n", s); return 0; }

    A、自然数1~9的累加和

    B、自然数1~10的累加和

    C、自然数1~9中的奇数之和

    D、自然数1~10中的偶数之和

    2、对for(表达式1;;表达式3)不可理解为for(表达式1;1;表达式3)。

    3、for循环的三个表达式都可以省略。

    循环的嵌套结构随堂测验

    1、若变量已正确定义,要求程序段完成求5!的计算,以下不能完成此操作的是()。

    A、for (i = 1, p = 1; i <= 5; i++) p *= i;

    B、for (i = 1; i <= 5; i++) {p = 1; p *= i;}

    C、i = 1; p = 1; while (i <= 5) {p *= i; i++;}

    D、i = 1; p = 1; do {p *= i; i++;} while (i <= 5);

    2、C语言中三种循环语句不可以相互嵌套。

    3、在多层循环中, 一个break语句只向外跳一层。

    第四单元测验(一)

    1、若定义以下语句: int u = 010; int v = 0x10; int w = 10; printf("%d,%d,%d\n",u,v,w); 则输出结果是()

    A、8,16,10

    B、10,10,10

    C、8,8,10

    D、8,10,10

    2、设ch是char型变量,其值为‘A’,则表达式ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch; 的值是()

    A、Z

    B、a

    C、z

    D、A

    3、设有以下语句: int x = 10; x += 3 + x % 3; printf("%d", x); 则x的值为()

    A、11

    B、12

    C、14

    D、15

    4、下面程序的输出结果是() #include void main() { int x = 7; int y = 3; printf("%d\n", y = x / y); }

    A、0

    B、2

    C、3

    D、不确定

    5、写出下面程序运行的结果() #include void main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d\n”,i,j,m,n); }

    A、9,11,9,10

    B、9,11,9,11

    C、9,11,8,10

    D、9,11,8,11

    6、下列程序的运行结果是() #include void main() { int a = 5, b = 4, c = 6, d; printf("%d\n", d = a > b ? (a > c ? a : c) : (b)); }

    A、5

    B、6

    C、0

    D、1

    7、下列程序的运行结果是() #include void main() { int a = 20; printf("%d,%o,%x", a, a, a); }

    A、20,24,14

    B、20,14,24

    C、20,16,14

    D、20,24,16

    8、若已知 a=10,b=20,则!a

    A、0

    B、10

    C、20

    D、1

    9、下列程序的运行结果是() #include void main() { int y = 1, x = 2, z = 3; printf("%d,%d\n", (++x, y++), z + 2); }

    A、3,5

    B、1,5

    C、2,5

    D、3,1

    10、下列条件语句中,功能与其他语句不同的是()

    A、if(a==0) printf("%d\n",y); else printf("%d\n",x);

    B、if (a!=0) printf("%d\n",x); else printf("%d\n",y);

    C、if(a) printf("%d\n",x); else printf("%d\n",y);

    D、if(a==0) printf("%d\n",x); else printf("%d\n",y);

    11、case语句后如没有break,顺序向下执行。

    12、else不可以单独存在。

    13、在switch语句中,必须使用default。

    14、if-else语句的一般形式如下,若表达式的值为“真”,则执行语句1;否则,就执行语句2。 if(表达式) 语句1 else 语句2

    15、如果变量已经正确定义,则执行以下程序段后,x的值不变。 if (x == 10) { y = 1; } else { y = 0; }

    16、在if语句中,必须出现else。

    17、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

    18、在switch语句中,可以根据需要使用或不使用break语句。

    19、switch语句中多个case标号可以共用一组语句。

    20、if(a=5) 是允许的。

    第四单元测验(二)

    1、下列叙述中正确的是()。

    A、do-while语句构成的循环不能用其他语句构成的循环来代替

    B、do-while语句构成的循环只能用break语句退出

    C、用do-while语句构成的循环,在while后的表达式为非零时结束循环

    D、用do-while语句构成的循环,在while后的表达式为零时结束循环

    2、C语言中while和do-while循环的主要区别是()。

    A、do-while的循环体至少无条件执行一次

    B、while的循环控制条件比do-while的循环控制条件更严格

    C、do-while允许从外部转到循环体内

    D、do-while的循环体不能是复合语句

    3、以下程序段的输出结果是()。 #include int main() { int num = 0, s = 0; while(num <= 3){ num ++; s += num; } printf("%d",s); return 0; }

    A、10

    B、3

    C、6

    D、1

    4、下列程序段执行后s的值为()。 int i=5, s=0; while(i--) if (i%2) continue; else s+=i;

    A、15

    B、10

    C、9

    D、6

    5、以下程序段若要使输出值为2,则应该从键盘给n输入的值是()。 int s = 0, a = 1, n; scanf("%d", &n); do { s += 1; a = a - 2; } while (a != n); printf("%d\n", s);

    A、-1

    B、-3

    C、-5

    D、0

    6、以下的 for 循环次数是多少()。 int x,y; for(x=0,y=0;(y!=123)|| (x<4);x++) ;

    A、执行3次

    B、执行4次

    C、循环次数不定

    D、无限循环

    7、假设变量s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0),则与以下程序段功能等价的赋值语句是()。 s = a; for(b = 1; b <= c; b++) s = s + 1;

    A、s=a+b

    B、s=a+c

    C、s=s+c

    D、s=b+c

    8、以下正确的描述是()。

    A、continue语句的作用是结束整个循环的执行

    B、只能在循环体内和switch语句体内使用break语句

    C、在循环体内使用break语句或continue语句的作用相同

    D、从多层循环嵌套中退出时, 只能使用continue语句

    9、下面程序执行结果是()。 for (a=1,i=-1; -1<=i<1; i++) { a++; printf("%2d", a); } printf("%2d", i);

    A、2 3 1

    B、-1

    C、1 2 0

    D、3

    10、如下程序的执行结果是()。 #include int main (void) { int i, sum = 0; for ( i = 1; i <= 3; sum ++ ) sum += i ; printf ("%d\n", sum); return 0; }

    A、6

    B、3

    C、死循环

    D、0

    11、do-while循环至少要执行一次循环语句。

    12、在循环中使用break语句或者continue语句,其作用是相同的。

    13、执行以下while语句,将出现死循环。 s = 0; i = 1; while(1){ if(i > 10){ continue; } s = s + i; i++; }

    14、while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了。

    15、continue 不是结束本次循环,而是终止整个循环的执行。

    16、C语言中三种循环语句不可以相互嵌套。

    17、for语句的一般形式如下,若表达式2的值为“真”,则先执行循环体语句,再计算表达式3,然后继续循环。 for (表达式1; 表达式2; 表达式3) 循环体语句

    18、对for(表达式1;;表达式3)不可理解为for(表达式1;1;表达式3)。

    19、执行以下程序段,将输出10。 int i = 10; while (i < 10){ printf("%d\n", i); }

    20、for语句的一般形式如下,其中的表达式1只执行一次。 for (表达式1; 表达式2; 表达式3) 循环体语句

    第四单元作业(一)

    1、编写程序,输入两个整数:1500和350,求出它们的商和余数,并进行输出。

    2、编写程序:已知三角形的三边a=3,b=4,c=5,求其面积s。(提示:假设有一个三角形,边长分别为a、b、c,三角形的面积S可由海伦公式求得: S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p为半周长: p=(a+b+c)/2)

    3、本题要求编写程序将一个百分制成绩转换为五分制成绩。输入的一行给出一个整数的百分制成绩,输出的一行给出对应的五分制成绩。转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。

    第四单元作业(二)

    1、编写程序,对于给定的正整数N(N小于等于10的9次方),求它的位数及其各位数字之和。(用while结构)

    2、编写程序,输入一个数,判断其是否是素数。

    3、水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。求所有的水仙花数。

    第五单元 数组

    一维数组的定义和使用随堂测验

    1、以下能对一维数组a进行正确初始化的语句是()。

    A、int a[10]=(0,0,0,0,0)

    B、int a[2]={0,1,2}

    C、int a[]={0}

    D、int a[]={{}}

    2、假定char类型变量占用1个字节,且数组定义如下,则数组str在内存中所占字节数是( )。 char str[81];

    A、0

    B、10

    C、80

    D、81

    3、对数组的描述正确的是()。

    A、数组一旦定义其大小是固定的,但数组元素的类型可以不同。

    B、数组一旦定义其大小是固定的,但数组元素的类型必须相同。

    C、数组一旦定义其大小是可变的,但数组元素的类型可以不同。

    D、数组一旦定义其大小是可变的,但数组元素的类型必须相同。

    4、一维数组定义的一般形式如下,其中的类型名指定数组中每个元素的类型。 类型名 数组名[数组长度];

    5、数组的长度可以是变量。

    二维数组的定义和使用随堂测验

    1、数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素()的值为6。

    A、a[3][2]

    B、a[1][2]

    C、a[2][1]

    D、a[2][3]

    2、以下数组定义中错误的是( )。

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

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

    C、int x[][3]={{1,2,3},{4,5,6}};

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

    3、有说明语句int a[4][5]; 则a[2]+3表示()。

    A、a数组行下标为2、列下标为3的元素的地址

    B、a数组行下标为2、列下标为3的元素的值

    C、a数组的第二行首地址

    D、a数组的第三行首地址

    4、在对数组全部元素赋初值时,不可以省略行数,但能省略列数。

    5、二维数组定义的一般形式如下,其中的类型名指定数组中每个元素的类型。 类型名 数组名[行长度][列长度];

    经典排序算法随堂测验

    1、用冒泡排序对4,5,6,3,2,1进行从小到大排序,第三趟排序后的状态为( )。

    A、4 5 3 2 1 6

    B、4 3 2 1 5 6

    C、3 2 1 4 5 6

    D、2 1 3 4 5 6

    2、有一组数,顺序是”4,7,8,1,9”,用冒泡排序法将这组数从小到大排序,第二趟第二次对比的两个数是()。

    A、1、4

    B、4、7

    C、1、7

    D、1、8

    3、若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动元素的次数为()。

    A、j-i

    B、i-j-1

    C、i-j

    D、i-j+1

    4、冒泡排序效率较高,因为它只需要约 n^2/2次比较。

    第五单元测验

    1、以下程序的运行结果是()。 #include int main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2) { k=k+p[i]; i++; } printf("%d\n",k); return 0; }

    A、58

    B、56

    C、24

    D、45

    2、假定int类型变量占用两个字节,其有定义:int x[10]={0, 2, 4}; 则数组x在内存中所占字节数是()。

    A、3

    B、6

    C、10

    D、20

    3、下列说法错误是()。

    A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

    B、数组名代表数组所占存储区的首地址,其值不可改变

    C、当程序执行中,数组元素的下标超出多定义的下标范围时,系统将给出“下标越界”的出错信息

    D、可以通过赋初值的方式确定数组元素的个数

    4、下面程序的运行结果是()。 #include int main() { int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=1;i<3;i++) s=s+a[b[i]]; printf("%d\n",s); return 0; }

    A、10

    B、5

    C、11

    D、15

    5、以下定义语句中不正确的是()。

    A、double x[5]={2.0, 4.0, 6.0, 8.0, 10.0};

    B、char c2[]={'\x10', '\xa', '\x8'};

    C、char c1[]={'1', '2', '3', '4', '5'};

    D、int y[5]={0,1,3,5,7,9};

    6、下面程序段运行结果是()。 char c[5]={'a','b','\0','c','\0'}; printf("%s",c);

    A、'a''b'

    B、ab

    C、ab c

    D、abc

    7、设有数组定义为char array[]="China"; 则数组array所占空间为()。

    A、5

    B、6

    C、7

    D、4

    8、有下面的程序段,则在VC++6.0环境中运行后输出()。 #include void main() { char a[3],b[]="china"; a=b; printf("%s",a); }

    A、china

    B、ch

    C、chi

    D、编译出错

    9、对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10};

    A、将5个初值依次赋给a[1]至a[5]

    B、将5个初值依次赋给a[0]至a[4]

    C、将5个初值依次赋给a[6]至a[10]

    D、因为数组长度与初值的个数不相同,所以此语句不正确

    10、若有说明:int a[3][4]={0}则下面正确的是()。

    A、只有元素a[0][0]可以得到初值0

    B、此说明语句不正确

    C、数组a中各元素都可以得到初值,但初值不一定为0

    D、数组a中每个元素均可以得到初值0

    11、数组的长度可以是变量。

    12、同一个数组中的每个元素都具有相同的数据类型,有统一的标识符即数组名,用不同的序号即下标来区分数组中的各元素。

    13、数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址。

    14、在定义数组之后,根据数组中元素的类型及个数,在内存中分配一段连续存储单元用于存放数组中的各个元素。

    15、数组初始化时,初始值个数小于数组元素的个数,C语言自动将剩余的元素初始化为初始化列表中的最后一个初始值。

    16、在对数组全部元素赋初值时,不可以省略行数,但能省略列数。

    17、引用二维数组的元素要指定两个下标,即行下标和列下标,一般形式如下。 数组名[列下标][行下标]

    18、对以下定义的二维数组table[3][2], 其数组元素在内存中的存放顺序是:table[0][0], table[1][0], table[2][0], table[0][1], table[1][1], table[2][1]。

    19、设int a[2][3]={{2},{3}};则a[1][0]的值是3。

    20、对二维数组初始化时,经常采用如下分行赋初值的方式,即在定义数组时,把初值表k中的数据依次赋给第k行的元素。 类型名 数组名[行长度][列长度] = {{初值表0},… {初值表k},……};

    第五单元作业

    1、将给定的n(n<=10)个整数(手动输入)存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的这n个数。

    2、键盘输入10个数存入一维数组中,编程实现输出下标为奇数的元素并求其和。

    3、给定一个长度不超过10000的、仅由英文字母构成的字符串。请筛选出字符串中的英文字母GPLT(不区分大小写),重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有GPLT字符都被输出。 例如输入为: pcTclnGloRgLrtLhgljkLhGFauPewSKgt 则输出为: GPLTGPLTGLTGLGLL

    4、键盘输入一个n行m列的整数数组array,按行列输出这个数组,并从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组并输出遍历结果。 例如数组: 1 2 4 7 3 5 8 10 6 9 11 12 输出为:1 2 3 4 5 6 7 8 9 10 11 12

    第六单元 函数

    函数的概念及调用随堂测验

    1、以下正确的说法是()。

    A、实参与其对应的形参共同占用一个存储单元

    B、实参与其对应的形参各占用独立的存储单元

    C、只有当实参与其对应的形参同名时才占用一个共同的存储单元

    D、形参是虚拟的,不占用内存单元

    2、以下正确的函数定义形式是()。

    A、double fun(int x, int y)

    B、double fun(int x ; int y)

    C、double fun(int x, int y);

    D、double fun(int x, y)

    3、以下()函数的定义是错误的。

    A、void f(int i) { return i+1; }

    B、void f( ) { }

    C、void f(int i) { }

    D、int f( ) { return 0; }

    4、函数的实参可以是常量,变量或表达式。

    5、函数形参的存储单元是动态分配的。

    形参是数组的函数调用随堂测验

    1、当调用函数时,实参是一个数组名,则向函数传送的是()。

    A、数组的长度

    B、数组的首地址

    C、数组每一个元素的地址

    D、数组每个元素中的值

    2、下列说法正确的是()。

    A、数组名作为实参使用时与普通变量并无区别

    B、数组元素作为实参使用时与普通变量并无区别

    C、数组元素的传送是双向的,形参实参可以相互传递

    D、数组名的传送是单向的,只能由实参传递给形参

    3、数组名为参数传递时,形参数组发生变化时,实参数组不随之变化。

    4、数组名为参数时形参数组和实参数组为同一数组,拥有相同的一段内存空间。

    5、多维数组也可以作为函数的参数。在函数定义时对形参数组可以指定每一维的长度,也可省去第一维的长度。

    函数的嵌套调用随堂测验

    1、调用函数f(27)的输出结果是()。 void f(int n) { if(n<5) printf("%d",n); else { printf("%d",n%5); f(n/5); } }

    A、102

    B、201

    C、21

    D、20

    2、以下程序的输出结果是()。 #include long fib(int n) { if(n>2) return (fib(n-1)+fib(n-2)); else return (2); } void main() { printf("%d\n",fib(3)); }

    A、2

    B、4

    C、6

    D、8

    3、在一个函数内部调用另一个函数的调用方式称为嵌套调用。

    4、递归的执行速度并不快,但递归代码比较紧凑,并且比相应的非递归代码更易于编写与理解。

    5、在函数嵌套中子函数遇到return是返回到当初调用它的地方。

    第六单元测验

    1、C语言中函数返回值的类型是由()决定的。

    A、return语句中的表达式类型

    B、调用该函数的主调函数的类型

    C、调用函数时临时决定

    D、定义函数时所指定的函数类型

    2、以下说法中正确的是()。

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

    B、总是从main()函数开始执行

    C、C语言程序中,要调用的函数必须在main()中定义

    D、main()函数必须放在程序的最开始部分

    3、建立自定义函数的目的之一是()。

    A、提高程序的执行效率

    B、提高程序的可读性

    C、减少程序的篇幅

    D、减少程序文件所占内存

    4、当调用函数时,实参是一个数组名,则向函数传送的是()。

    A、数组的长度

    B、数组的首地址

    C、数组每一个元素的地址

    D、数组每个元素中的值

    5、下列的结论中只有()是正确的。

    A、所有的递归程序均可以采用非递归算法实现

    B、只有部分递归程序可以采用非递归算法实现

    C、所有的递归程序均不可以采用非递归算法实现

    D、以上三种说法都不对

    6、对于以下递归函数f,调用f(4),其返回值为()。 int f(int n) { if(n) return f(n-1)+n; else return n; }

    A、10

    B、4

    C、0

    D、以上均不是

    7、下面程序运行的结果是()。 void delch(char a[],int n) { int i,j; char s[10]; for(i=0;i='0')&&(s[i]<='9')) { a[j]=s[i]; j++; } s[j]='\0'; } void main() { char item[6]={'a','3','4','b','c','\0'}; delch(item,6); printf("%s\n",item); }

    A、34

    B、abc

    C、a34bc

    D、a23

    8、C语言规定,程序中各函数之间()。

    A、既允许直接递归调用也允许间接递归调用

    B、不允许直接递归调用也不允许间接递归调用

    C、允许直接递归调用不允许间接递归调用

    D、不允许直接递归调用允许间接递归调用

    9、一个递归算法必须包括()。

    A、递归部分

    B、终止条件和递归部分

    C、循环部分

    D、终止条件和循环部分

    10、在C语言中,下列错误的说法是()。

    A、函数可以递归调用

    B、不允许在函数定义中再定义函数

    C、递归程序不可能用非递归算法实现

    D、对于continue语句,可以通过改变程序的结构而不使用它

    11、C语言程序中可以有多个函数 , 但只能有一个主函数。

    12、可以在一个函数中定义另一个函数。

    13、如果函数定义出现在函数调用之前,可以不必加函数原型声明。

    14、若用数组名作为函数调用的实参,传递给形参的是数组中的第一个元素的值。

    15、用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不一致时,即会发生错误。

    16、普通变量或数组元素作函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。

    17、数组名就是数组的首地址。

    18、函数的定义可以嵌套,但函数的调用不可以嵌套。

    19、在一个函数内部调用另一个函数的调用方式称为嵌套调用。

    20、递归并不节省存储器的开销,因为递归调用过程中必须在某个地方维护一个存储处理值的栈。

    第六单元作业

    1、寻找从键盘输入的10个数字中的最大数,利用函数实现。

    2、已知一个数组a中包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。

    3、利用递归调用的方法求n的阶乘。

    4、输入一个正整数n,将其逆序输出。要求定义和调用函数reverse(num),其功能是将num逆序输出,要求用递归实现。例如,输入12345,输出54321。

    5、输入3个数字,求3个数中最大数和最小数的差值,利用函数嵌套调用完成(例如在求插值的函数中调用求最大最小值的函数)。

    第七单元 指针

    指针的基本概念随堂测验

    1、若有定义:int x,*pb;则在以下正确的赋值表达式是( )

    A、pb=&x

    B、pb=x

    C、*pb=&x

    D、*pb=*x

    2、以下哪个定义中的p不是指针,请选择恰当的选项:( )

    A、char **p;

    B、char (*p)[10];

    C、char *p[6];

    D、给出的三项中,p都是指针

    3、若定义pf为指向float类型变量f的指针,下列语句中( )是正确的。

    A、float f, *pf = f;

    B、float f, *pf = &f;

    C、float *pf = &f, f;

    D、float f, *pf =0.0;

    4、设有定义语句"int (*ptr)[10];",其中的 ptr 是 10 个指向整型变量的指针。

    5、若有定义:int x=0, *p=&x;,则语句printf("%d\n",*p);的输出结果是x的地址。

    指针变量和一维数组随堂测验

    1、若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<=i<=9,则对a数组元素的引用不正确的是( )

    A、a[p-a]

    B、*(&a[i])

    C、p[i]

    D、*(*(a+i))

    2、以下程序段数组所有元素输入数据,应在下划线填入的是( )【1】 void main() { int a[10],i=0; while(i<10) scanf("%d", ); }

    A、a+(i++)

    B、&a[i+1]

    C、a+i

    D、&a[++i]

    3、根据声明int a[10], *p=a; ,下列表达式错误的是( )

    A、a[9]

    B、p[5]

    C、a++

    D、*p++

    4、设有变量定义 char *lang[ ]={"FOR","BAS","JAVA","C"}; 表达式 *lang[1]>*lang[3]的值是1。

    5、直接访问就是直接利用变量的地址直接进行访问。

    指针变量和二维数组随堂测验

    1、若有变量定义语句"int a[4][3], *p=a[2];" 则表达式p[2]指向的数组元素是( )

    A、a[0][1]

    B、a[1][1]

    C、a[2][2]

    D、a[3][0]

    2、若有说明语句 "int a[2][4]={2,4,6,8,10,12,14,16},*p=a[0];", 则表达式 *(*(a+1)+2)**(p+1) 的值是( )

    A、140

    B、80

    C、56

    D、48

    3、下列程序的输出结果是( ) int a[3][3]={{2},{4},{6}}; void main() { int i,*p=&a[0][0]; for(i=0;i<2;i++) { if(i==0) a[i][i+1]=*p+1; else ++p; printf("%d",*p); } }

    A、23

    B、26

    C、33

    D、36

    4、设有变量定义语句"int a[2][3];",表达式*(a[1]+2) 能正确表示数组 a 中元素地址。

    5、若有说明语句"int a[4][10];"且 0<=i<4,0<=j<10,则对数组元素 a[i][j]的错误引用是*(a+i)[j]。

    指针变量作为形式参数随堂测验

    1、以下程序的输出结果是( ) void sub(int x,int y,int *z) { *z=y-x; } void main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%d,%d,%d\n",a,b,c); }

    A、5,2,3

    B、-5,-12,-7

    C、-5,-12,7

    D、5,-2,-7

    2、以下函数返回 a 所指数组中最小值所在的下标值 fun( int *a,int n) { int i,j=0,p; p=j; for(i=j;i

    A、i=p;

    B、a[p]=a[i];

    C、p=j;

    D、p=i;

    3、有以下函数 char *fun(char *p) { return p; } 该函数的返回值是( )

    A、无确切的值

    B、形参 p 中存放的地址值

    C、一个临时存储单元的值

    D、形参 p 自身的地址值

    4、已定义以下函数fun (int *p){ return *p;}该函数的返回值是形参p的地址值。

    5、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。

    第七单元测验

    1、下面程序运行时,如果从键盘上输入 3,5,程序输出的结果是( ) void main( ) { int a,b,*pa,*pb; pa=&a; pb=&b; scanf("%d,%d",pa,pb); *pa=a+b; *pb=a+b; printf("a=%d,b=%d\n",a,b); }

    A、a=13,b=13

    B、a=8,b=8

    C、a=8,b=13

    D、出错

    2、若有说明语句"int i,j =7,*p=&i;",则与 i=j 等价的语句是( )

    A、i=*p;

    B、*p=*&j;

    C、i=&j;

    D、i=**p;

    3、C 语言的说明语句"char *p[5];"的含义是 ( )

    A、P 是一个指针数组,其数组的每一个元素是指向字符的指针

    B、P 是一个指针,指向一个数组,数组的元素为字符型

    C、A 和 B 均不对,但它是 C 语言正确的语句

    D、C 语言不允许这样的说明语句

    4、设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是( )。

    A、2

    B、3

    C、4

    D、&a[0]+1

    5、根据声明int (*p)[10], p是一个( )。

    A、数组

    B、指针

    C、函数

    D、数组的元素

    6、下列程序段的输出是( ) int c[]={1, 3, 5}; int *k=c+1; printf("%d", *++k);

    A、3

    B、4

    C、5

    D、6

    7、下列程序的输出结果是( ) void main() { char ch[2][5] = { "6934","8254" }, *p[2]; int i, j, s = 0; for (i = 0; i < 2; i++) { p[i] = ch[i]; for (j = 0; p[i][j] > '0'&& p[i][j] <= '9'; j += 2) s = 10 * s + p[i][j] - '0'; } printf("%d\n", s); }

    A、6385

    B、69825

    C、63825

    D、693825

    8、下面程序的输出结果是() void main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4]=a,i,j,k=0; for(i=0; i<3; i++) for(j=0; j<2; j++) k+=*(*p+i)+j); printf("%d\n",k); }

    A、25

    B、60

    C、72

    D、86

    9、当调用函数时,实参是一个数组名,则向函数传送的是( )

    A、数组的长度

    B、数组的首地址

    C、数组每一个元素的地址

    D、数组每个元素中的值

    10、下列程序执行后的输出结果是 ( )【1】 void func(int *a,int b[ ]) { b[0]=*a+6; } void main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); }

    A、6

    B、7

    C、8

    D、9

    11、设有定义:int n1=0,n2,*p=&n2,*q=&n1;,赋值语句*p=*q; 与n2=n1;语句等价。

    12、现有定义语句:char *p,* q;表达式 p/=q是正确的赋值语句。

    13、设有两条语句"int a,*p=&a;"和"*p=a;",则第 1 条语句中的"*p=&a"是定义指针变量p并对其初始化。

    14、char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。

    15、指针数组的每个元素都是一个指针变量。

    16、int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。

    17、函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。

    18、变量的指针,其含义是指该变量的地址。

    19、设有下面的程序段:chat s[]=”china”; char *p; p=s;则数组s中的内容和指针变量p中的内容相等。

    20、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则c=*p1*(*p2)该语句不能正确执行赋值功能。

    第七单元作业

    1、从键盘上输入10个数据到一维数组中,然后找出数组中的最大值和该值所在的元素下标。

    2、利用指向行的指针变量求5×3数组各行元素之和。

    3、编写一个函数,用于统计一个字符串中字母、数字、空格的个数。在主函数中输入该字符串后,调用上述函数,并输出统计结果。要求用指针实现。

    4、从键盘中输入字符串,删除字符串中的空格,并打印,要求用指针实现。

    5、存在一个字符串: “Today is a wonderful day”。要求:将该字符串中各个单词存放到二维数组:char str[5][10] 中。

    期末测试

    期末考试

    1、已知字符'c' 的ASCII码为99,语句printf ("%d,%c",'c','c'+1); 的输出为( )。提示:字符a的ASCII码为96

    A、99,c

    B、99,100

    C、99,d

    D、语句不合法

    2、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为

    A、int

    B、float

    C、double

    D、不确定

    3、字符串"CHINA"在内存存储占用的字节数是( )。

    A、5

    B、6

    C、7

    D、无法确定

    4、判断字符串a,b相等可以用( )。

    A、if(a==b);

    B、if(a=b);

    C、if(strcpy(a,b));

    D、if(strcmp(a,b));

    5、下面程序段是输出两个字符串中对应字符相等的字符。则[1]应填()。 char x[]="programming"; char y[]="Fortran"; int i=0; while(x[i]!='\0'&&y[i]!= '\0') { if(x[i]==y[i]) printf("%c",[1]); else i++; } printf("\n");

    A、x[i++]

    B、y[++i]

    C、x[i]

    D、y[i]

    6、若用数组名作为函数调用的实参,则传递给形参的是()。

    A、数组的首地址

    B、数组第一个元素的值

    C、数组中全部元素的值

    D、数组元素的个数

    7、设有数组定义:char arry[10][81]; 则数组arry所占的存储空间为()。

    A、10

    B、810

    C、0

    D、81

    8、C语言中基本数据类型包括。

    A、整型、实型、逻辑型

    B、整型、实型、字符型

    C、整型、字符型、逻辑型

    D、整型、实型、逻辑型、实型

    9、以下代码段中循环体的执行次数( ) void main() { char a[]="Programm",*pa=a; for(;*pa!='\0';) pa++; }

    A、5

    B、6

    C、7

    D、8

    10、把数学条件“x是y的倍数,且x和y都为正数”表示为C语言表达式正确的是

    A、x>0 && y>0 && x%y==0

    B、x>0 && y>0 || x%y==0

    C、x*y>0 && x%y==0

    D、x!= y && x%y==0

    11、以下标示符合法的是( )

    A、fast_1_3

    B、?our

    C、if

    D、five$

    12、下面描述正确的是( )

    A、在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

    B、在C语言中,一个数组中元素的个数可以不确定,允许随机变动

    C、在C语言中,同一个数组中元素的数据类型可以不一致

    D、在C语言中,定义数组后,就确定了它所容纳的具有相同数据类型元素的个数

    13、若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0

    A、a[p-a]

    B、*(&a[i])

    C、p[i]

    D、*(*(a+i))

    14、C语言中有一个逻辑运算符的优先级高于算术运算符,它是( )

    A、&

    B、!

    C、||

    D、&&

    15、若有以下说明和语句 //结构体和指针 struct worker { int no; char *name; } work, *p=&work; 则以下引用方法不正确的是( )

    A、work.no

    B、(*p).no

    C、p->no

    D、work->no

    16、C语言中,在进行混合运算时,数据类型由高级向低级转换。

    17、若变量定义为“int x, y; ”,则“x + y = 22;”是符合C语言语法的表达式。

    18、while语句的一般形式如下,当表达式的值为“真”时,循环执行,直到表达式的值为“假”,循环中止并继续执行while的下一条语句。

    19、函数的实参传递到形参有两种方式:值传递和地址传递。

    20、C语言的函数定义中,如果省略了return语句,函数就无法返回主调函数。

    期末主观题

    1、请下载附件,在答题纸上手写完成主观题,答题纸上注明学号姓名,拍照存入文件夹,命名格式为“学号-姓名-主观题”,与客观题截图文件夹一起打包上传附件。

    展开全文
  • [图片说明](https://img-ask.csdn.net/upload/202004/19/1587283610_932308.png)请问一下这个题怎么做? 对于整数有不同的分类方法,可以按正负数划分,也可以按奇偶数划分等。现在要对一批整数做-个基本划分,方法...
  • /不知道同学们过的怎么样,一晃半学期过去了,你的C语言学的怎么样呢,作为重新学习C语言的我,又一次认识了面向对象编程的魅力,希望有条件的同学继续跟着我继续探索计算机的魅力,从二月末到四月末的你是否达到了...

    /不知道同学们过的怎么样,一晃半学期过去了,你的C语言学的怎么样呢,作为重新学习C语言的我,又一次认识了面向对象编程的魅力,希望有条件的同学继续跟着我继续探索计算机的魅力,从二月末到四月末的你是否达到了当初的目标,请你继续努力,希望别后悔当初/
    ————————————————————————————————————————
    有同学私信我做不做练兵的题,我这里想讲的是已经学习了这么久的你,如果观看一个题目有具体的思路和过程,就不必再打一遍你烂熟于心的东西。
    希望学有所成,应该会了没必要一次次打下去,练兵根据自己的情况继续练习。这边将不会再跟下去,可以私信我解决也可以看看别人的博客解决。

    ————————————————————————————————————————
    1
    山地训练(4分)
    题目内容:
    为了能在下一次跑步比赛中有好的发挥,小白在一条山路上开始了她的跑步训练。她希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:女孩子独自进山的时间不得超过M秒(1 <= M <= 10,000,000)。假设整条山路划分成T个长度相同的路段(1 <= T <= 100,000),并且小白用si表示第i个路段的路况,用u、f、d这3个字母分别表示第i个路段是上坡、平地、下坡。小白跑完一段上坡路的耗时是U秒(1 <= U <= 100),跑完一段平地的耗时是F秒(1 <= F <= 100),跑完一段下坡路的耗时是D秒(1 <= D <= 100)。注意,沿山路原路返回时,原本是上坡的路段变成了下坡路段,原本是下坡的路段变成了上坡路段。小白想知道,在能按时返回农场的前提下,她最多能在这条山路上跑多少个路段。请你编程帮助她计算。
    函数原型:long Fun(long M, long T, long U, long F, long D, char str[]);
    函数功能:计算在限时M秒内T个路段的情况下,最多往返可跑的路段数。
    参数:M,T,U,F,D分别代表限时、路段数,以及上坡、平地、下坡的耗时
    数组str保存整条山路的路段状况
    返回值:最多可跑的路段数

    程序运行结果示例1:
    Input M,T,U,F,D:13 5 3 2 1↙
    Input conditions of road:ufudf↙
    num=3

    程序运行结果示例2:
    Input M,T,U,F,D:150 8 18 10 5↙
    Input conditions of road:fuffdfud↙
    num=7

    进山时间等信息的输入提示: “Input M,T,U,F,D:”
    路况输入提示信息: “Input conditions of road:”
    进山时间等数据的输入格式: “%ld%ld%ld%ld%ld”
    路况等数据的输入格式: “%s”
    输出格式: “num=%ld\n”
    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
    时间限制:500ms内存限制:32000kb

    #include<stdio.h>
    #include<string.h>
    long Fun(long M, long T, long U, long F, long D, char str[])
    {
        long long i,t=strlen(str),sum=0,num=0;
        for(i=0;i<t;i++)
        {
            if(str[i]=='u'||str[i]=='d')
            {
    
                if((sum+U+D)<=M)
                {
                    sum=sum+U+D;
                    num++;
                }
            }
            if(str[i]=='f')
            {
                if((sum+2*F)<=M)
                {
                    sum=sum+2*F;
                    num++;
                }
            }
    
        }
        printf("num=%d\n",num);
    }
    int main()
    {
        long long M,T,U,F,D;
        char Str[100000];
        printf("Input M,T,U,F,D:");
        scanf("%ld%ld%ld%ld%ld",&M,&T,&U,&F,&D);
        printf("Input conditions of road:");
        scanf("%s",Str);
        Fun(M,T,U,F,D,Str);
        return 0;
    }
    

    2
    奇偶数分离(4分)
    题目内容:
    输入n个整数(n从键盘输入,假设n的值不超过100),按奇偶数分成两组并输出。输出两行,第一行为所有奇数,第二行为所有偶数,保持数据的相对顺序与输入顺序相同。
    函数原型如下所示:
    void Seperate(int a[], int n); //数组a[]存放用户输入的n个整数
    解题思路:用两个循环分别输出奇数和偶数,在输出第一个数时用"%d"格式字符,在输出其余数时用",%d"格式字符,用标志变量记录和判断是否是第一个奇数或偶数。
    程序运行结果示例1:
    Input n:7↙
    Input numbers:5 9 47 82 0 6 7↙
    5,9,47,7
    82,0,6

    程序运行结果示例2:
    Input n:8↙
    Input numbers:-2 3 5 0 23 62 79 83↙
    3,5,23,79,83
    -2,0,62

    输入提示信息:“Input n:”
    “Input numbers:”
    输入格式: “%d”
    每行第一个数据的输出格式:"%d"
    每行第二个及以后数据的输出格式:",%d"
    注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
    时间限制:500ms内存限制:31kb

    #include<stdio.h>
    void Seperate(int a[], int n)
    {
        int i,OddNumber[100],EvenNumber[100],j=0,k=0;
        for(i=0;i<n;i++)
        {
            scanf(" %d",&a[i]);
            if(a[i]%2==0||a[i]==0)
            {
                EvenNumber[j]=a[i];
                j++;
            }
            else
            {
                OddNumber[k]=a[i];
                k++;
            }
        }
        for(i=0;i<k;i++)
        {
            if(i==0)
            {
                printf("%d",OddNumber[i]);
            }
            else if(i<k-1)
            {
                printf(",%d",OddNumber[i]);
            }
            else
            {
                printf(",%d\n",OddNumber[i]);
            }
        }
        for(i=0;i<j;i++)
        {
            if(i==0)
            {
                printf("%d",EvenNumber[i]);
            }
            else if(i<j-1)
            {
                printf(",%d",EvenNumber[i]);
            }
            else
            {
                printf(",%d\n",EvenNumber[i]);
            }
        }
    }
    int main()
    {
        int i,n;
        int a[100];
        printf("Input n:");
        scanf("%d",&n);
        printf( "Input numbers:");
        Seperate(a,n);
        return 0;
    }
    

    3
    子串判断(4分)
    题目内容:从键盘输入两个长度小于80的字符串A和B,且A的长度大于B的长度,编程判断B是不是A的子串,如果是,则输出”Yes”,否则输出”No”。这里所谓的该串的子串是指字符串中任意多个连续的字符组成的子序列。
    函数原型:int IsSubString(char a[], char b[]);
    函数功能:判断b是否是a的子串,是则返回1,否则返回0
    程序运行结果示例1:
    Input the first string: Abcdefghijk123↙
    Input the second string: 123↙
    Yes
    程序运行结果示例2:
    Input the first string: abefsfl↙
    Input the second string: befs↙
    Yes
    程序运行结果示例3:
    Input the first string: aAbde↙
    Input the second string: abc↙
    No
    输入第一个字符串的提示信息: “Input the first string:”
    输入第二个字符串的提示信息: “Input the second string:”
    输入格式: 用 gets()函数
    输出格式:
    是子串,输出: “Yes\n”
    不是子串,输出: “No\n”
    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
    时间限制:500ms内存限制:32000kb

    #include<stdio.h>
    #include<string.h>
    int IsSubString(char a[], char b[])
    {
        int n=strlen(a),m=strlen(b);
        int i,j;
        for(i=0; i<n; i++)
        {
            if(a[i]==b[0])
            {
                int count=0;
                for(j=0;j<m;j++)
                {
                    if(a[i+j]!=b[j])
                    {
                        count=1;
                    }
                    if(count==0&&j==m-1)
                    {
                        return 1;
                    }
                }
            }
        }
        return 0;
    }
    int main()
    {
        char a[80],b[80];
        printf("Input the first string:");
        gets(a);
        printf("Input the second string:");
        gets(b);
        if(IsSubString(a,b))
        {
            printf("Yes\n");
        }
        else
        {
            printf("No\n");
        }
        return 0;
    }
    

    4
    星期查找(4分)
    题目内容:
    任意输入英文的星期几,通过查找如图所示的星期表,输出其对应的数字,若查到表尾,仍未找到,则输出错误提示信息。在这里插入图片描述

    提示:用一个二维字符数组weekDay来存放如图所示的星期表的内容(字符串)。输入待查找的字符串,然后在星期表中顺序查找与输入字符串相匹配的字符串。找到的字符串在星期表数组中的第一维下标(行号)即为题目所求。
    程序运行结果示例1:
    Please enter a string:
    Friday↙
    Friday is 5
    程序运行结果示例2:
    Please enter a string:
    Fruday↙
    Not found!
    输入提示信息:“Please enter a string:\n”
    输入格式: 字符串输入采用gets()函数
    输出格式:
    找到了,输出:"%s is %d\n"
    没找到,输出:“Not found!\n”
    注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
    时间限制:500ms内存限制:32000kb

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char weekDay[][9]= {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
        char week[9];
        int i;
        printf("Please enter a string:\n");
        gets(week);
        for (i=0; i<7; i++)
        {
            if (strcmp(week,weekDay[i])==0)
            {
                printf("%s is %d\n",week,i);
                goto a;//不建议使用goto,让同学们了解一下goto的用法
            }
        }
        printf("Not found!\n");
       a:
        return 0;
    }
    
    展开全文
  • 受到神曲《Write in C》的蛊惑,再看看本猫山河日下的编程水平,决定从小学生起,重温大学课本,同时也能给找不到课后答案的孩子一点帮助~哇,一举N得,那么开始吧! 所用教材: 一本中规中矩的教材,现在看来是...
  • 环球网校小编整理了2019年计算机二级C语言章节练习之C程序设计的初步知识供大家参考复习,小伙伴们快来,测试一下自己吧!了解更多全国计算机二级C语言敬请关注环球网校计算机二级频道。C语言章节练习第2...
  • 多放点C语言的,我司走过校招,几乎所有高校毕业生C语言功底实在是…” 之前我们在秋招笔试经分享系列时,有一位大厂研发工程师恳切留言。越是基础的东西,越容易忽视,题目看得懂,答案却怎么也想不起来。 不信看...
  • 已出版多部著作和译著,包括《程序设计语言基础》(译著,1990),《Mathematica数学软件系统的应用与程序设计》(1994),《从问题到程序——程序设计C语言引论》(1999) [同作者作品] 计算机基础教程(上下)...
  • 什么是C语言

    2008-10-20 09:27:00
    写个十几万行代码 怎么都是超凡脱俗~ 你就是牛B 个1000几百道 就要做题做题做题 你就可以说自己懂c语言了~再后来 或上百度搜...做到上面2条 不懂或不清楚的查书 独立写程序 理解例题先~后来 写程序以抄书为...
  • 在思考程序哪些地方应该用循环、指针或数组等细节问题之前,先要确定程序的大体框架,可以自己先试着用伪代码描述整个算法,然后再一步步的确定应该怎么编码。最后验证结果并反思能否改进算法。本思路:1.在草稿纸...
  • C语言的学习方法

    2008-10-20 09:13:00
    在学好C语言的语法的同时 更重要的是你会了C语言的语句 学习C语言的操作比较简单 多做题就没问题了有些问题不懂一上机就知道怎么回事了答案补充视频教学:《吉林大学c语言视频教程》|||去买一本书 对这书上机 这个很...
  • 1. PTA(拼题A)的做题邀请码怎么得进入中国大学mooc,点击课程 ,进入课程公告,查看邀请码2. pta这道题目部分错误应该错在哪里你的并查集是不是写错了?还有大数组放到函数外面,判断俱乐部的人数是0的情况。3. PTA...
  • c语言程序设计100例,太过基础,入门之后,挑战性不够。直接项目,初学者则需花费大量的时间与精力、且得有一定能力之后。  于是,这份精选微软等公司数据结构+算法面试100的资料横空出世了: [推荐] ...
  • 到这里,也只是完了《C语言程序设计(第3版)》题目集中第三章的练习和习题,主要是对选择结构的练习。下面几点是个人在这些天的一些想法。 对任何的一个小错误都要通过调试或者搜索去解决它,这不仅会培养自己...
  • c语言程序设计100例,太过基础,入门之后,挑战性不够。直接项目,初学者则需花费大量的时间与精力、且得有一定能力之后。 于是,这份精选微软等公司数据结构+算法面试100的资料横空出世了: [推荐] [整理]...
  • c语言程序设计100例,太过基础,入门之后,挑战性不够。直接项目,初学者则需花费大量的时间与精力、且得有一定能力之后。  于是,这份精选微软等公司数据结构+算法面试100的资料横空出世了: [推荐] ...
  • c语言程序设计100例,太过基础,入门之后,挑战性不够。 直接项目,初学者则需花费大量的时间与精力、且得有一定能力之后。   于是,这份精选微软等公司数据结构+算法面试100的资料...
  • <br />横空出世,席卷Csdn  ---评微软数据结构+算法面试100   作者:July 时间:2010年10月-11月。 ------------------------------------... c语言程序设计100例,太过基础,
  • c语言程序设计100例,太过基础,入门之后,挑战性不够。 直接项目,初学者则需花费大量的时间与精力、且得有一定能力之后。   于是,这份精选微软等公司数据结构+算法面试100的资料...
  • 在思考程序哪些地方应该用循环、指针或数组等细节问题之前,先要确定程序的大体框架,可以自己先试着用伪代码描述整个算法,然后再一步步的确定应该怎么编码。最后验证结果并反思能否改进算法。本思路:1.在草稿纸...
  • C语言程序设计》 实验指导书 山东水利职业学院 目 录 实验一 C语言程序初步 2 实验二 数据类型、运算符和表达式 3 实验四 循环结构(1) 6 实验五 循环结构(2) 9 实验六 函数(1) 12 实验七 函数(2) 14 ...
  • 软件测试经典面试 (超实用)

    热门讨论 2012-02-16 13:48:08
    3、结构化程序设计和面向对象程序设计各自的特点及优缺点是什么? 28 4、简述什么是存储过程和触发器? 28 5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。 29 6、请简述DNS、活动目录、域的概念。 ...
  •  软件特征:只有程序、程序设计概念,不重视程序设计方法。  ② 程序系统阶段。  硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长 。  软件特征:程序员数量猛增,开发人员素质低。  ...
  • c++ 面试 总结

    2009-09-16 08:44:40
    C++面试 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。 private 也被集成,只事派生类没有访问权限而已 virtual可加可不加 子类的...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

c语言程序设计题怎么做

c语言 订阅