精华内容
下载资源
问答
  • C语言测试题

    2021-05-21 18:36:08
    C语言测试题发布时间:2021-05-06C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面...

    C语言测试题

    发布时间:2021-05-06

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面就由第一范文网小编为大家介绍一下C语言测试题的文章,欢迎阅读。

    C语言测试题篇1

    (1)下面关于算法说法错误的是_______。

    a. 算法最终必须由计算机程序实现

    b. 为解决某问题的算法同为该问题编写的程序含义是相同的

    c. 算法的可行性是指指令不能有二义性

    d. 以上几个都是错误的

    (2)下面说法错误的是______.

    a. 算法原地工作的含义是指不需要任何额外的辅助空间

    b. 在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法

    c. 所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

    d. 同一个算法,实现语言的级别越高,执行效率就越低

    (3)在下面的程序段中,对x的赋值语句的频度为_____。

    for (int i; i

    { for (int j=o; j

    { x:=x+1;

    } }

    a. 0(2n) b. 0(n) c. 0(n2) d. O(log2n)

    (4)下面说法正确的是______。

    a. 数据元素是数据的最小单位;

    b. 数据元素是数据的最小单位;

    c. 数据的物理结构是指数据在计算机内的实际存储形式

    d. 数据结构的抽象操作的定义与具体实现有关

    (5)下面说法正确的是_______。

    a. 在顺序存储结构中,有时也存储数据结构中元素之间的关系

    b. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高

    c. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立

    d. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构

    C语言测试题篇2

    (1) 下述_____是顺序存储结构的优点。

    a. 存储密度大

    b. 插入运算方便

    c. 删除运算方便

    d. 可方便地用于各种逻辑结构的存储表示

    (2)下面关于线性表的叙述中,错误的是_____。

    a. 线性表采用顺序存储,必须占用一片连续的存储单元

    b. 线性表采用顺序存储,便于进行插入和删除操作

    c. 线性表采用链接存储,不必占用一片连续的存储单元

    d. 线性表采用链接存储,便于插入和删除操作

    (3) 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用_______存储方式最节省时间。

    a. 顺序表 b. 双链表 c. 带头结点的双循环链表 d. 单循环链表

    (4)静态链表中指针表示的是______。

    a. 内存地址 b. 数组下标 c. 下一元素地址 d. 左、右孩子地址

    (5)下面的叙述不正确的是_______。

    a. 线性表在链式存储时,查找第i个元素的时间同i的值成正比

    b. 线性表在链式存储时,查找第i个元素的时间同i的值无关

    c. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比

    d. 线性表在顺序存储时,查找第i个元素的时间同i的值无关

    C语言测试题篇3

    (1)下面说法错误的是_____。

    a. 静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。

    b. 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。

    c. 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

    d. 静态链表就是一直不发生变化的链表。

    (2)在双向链表指针p的结点前插入一个指针q的结点操作是______。

    a. p->Llink=q; q->Rlink=p; p->Llink->Rlink=q; q->Llink=q;

    b. p->Llink=q; p->Llink->Rlink=q; q->Rlink=p; q->Llink=p->Llink;

    c. q->Rlink=p; q->Llink=p->Llink; p->Llink->Rlink=q; p->Llink=q;

    d. q->Llink=p->Llink; q->Rlink=q; p->Llink=q; p->Llink=q;

    (3)下面说法正确的是______。

    a. 顺序存储结构的主要缺点是不利于插入或删除操作;

    b. 线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的;

    c. 顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好;

    d. 顺序存储方式只能用于存储线性结构。

    (4)下面说法正确的是______。

    a. 线性表只能用顺序存储结构实现。

    b. 为了很方便的插入和删除数据,可以使用双向链表存放数据。

    c. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

    d. 链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。

    (5)下面说法正确的是_________。

    a. 数据元素是数据的最小单位。

    b. 队列逻辑上是一个下端口和上端能增加又能减少的线性表。

    c. 任何一个递归过程都可以转换成非递归过程。

    d. 只有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈。

    展开全文
  • 1.(A )是构成C语言程序的基本单位。A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。A、 程序中第一条可执行语句B、 程序中第一个函数C、 程序中的main函数D、包含文件中的第一个函数3、以下说法中正确...

    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)

    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%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

    /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

    11.如果int a=3,b=4;则条件表达式"aA、 3

    B、 4

    C、 0

    D、1

    详见教材P97.

    表达式1?表达式2:表达式3

    先计算表达式1,

    若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值;

    若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值

    此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式x

    A、4

    B、3

    C、2

    D、0

    E)1

    13.C语言中,关系表达式和逻辑表达式的值是( B ) 。

    A、0

    B、 0或1

    C、 1

    D、‘T’或’F’

    14. 下面( D )表达式的值为4.

    A、 11/3

    B、 11.0/3

    C、 (float)11/3

    D、 (int)(11.0/3+0.5)

    14~16题为同一类型

    详见教材P54~56.

    (1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

    (2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

    选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

    选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

    选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

    选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

    15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )

    A、b=1.0/a

    B、b=(float)(1/A、

    C、b=1/(float)a

    D、b=1/(a*1.0)

    16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)

    A、1

    B、4

    C、4.333333

    D、4.6

    “(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1

    17. 以下对一维数组a的正确说明是: D

    A、char a(10);

    B、 int a[];

    C、int k=5,a[k];

    D、char a[3]={‘a’,’b’,’c’};

    详见教材P143~144,一维数组的定义、初始化

    类型符 数组名 [常量表达式]

    类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。

    选项A,常量表达式只能放在中括号 [ ]中

    选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。

    选项C,常量表达式不能为变量。

    18.以下能对一维数组a进行初始化的语句是:( C )

    A、int a[5]=(0,1,2,3,4,)

    B、 inta(5)={}

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

    D、 int a{5}={10*1}

    详见教材P145,一维数组的定义、初始化

    选项B,D,常量表达式只能放在中括号 [ ]中

    选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().

    19.在C语言中对一维整型数组的正确定义为 D 。

    A、int a(10);

    B、int n=10,a[n];

    C、int n;a[n];

    D、#define N 10

    int a[N];

    20、已知:int a[10]; 则对a数组元素的正确引用是( D )。

    A、a[10]

    B、a[3.5]

    C、a(5)

    D、a[0]

    详见教材P144,数组元素的引用

    数组名[下标]

    引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

    int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.

    选项A,超过了数组a的逻辑地址下标范围;

    选项B,逻辑地址下标只能为整数

    选项C,逻辑地址下标只能放在[ ]中

    展开全文
  • c语言测试题

    千次阅读 2021-05-20 06:48:26
    C语言部分一、选择(每小2分,共10分)(下在各小,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。1、若定义:int a[2][3]{0,2,4,6,8,10};以下...

    C语言部分

    一、选择题(每小题2分,共10分)

    (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。

    1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D,E )

    A、*(a+1)为元素6的地址

    这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。

    B、*(a[1]+1)的值为2

    为8,故B不正确

    C、**(a+1)+2的值为8

    这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确;

    D、a[0]与a相同

    因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。

    E、a[1][2]的值为10

    它是指第二行的第三个元素,为10,正确

    2、对函数的正确使用方法描述( A,C,D )。

    A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组

    B、实参数组元素和形参数组元素类型可以不一致

    C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度

    E、数组名做参数属于值传递

    3、对静态变量的正确描述( A,B,D,E )

    A、静态局部变量在静态存储区内分配单元( )

    B、静态外部变量可以赋初值,也可以不赋初值

    C、静态外部变量的作用与外部变量相同

    D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。

    E、静态局部变量只赋一次初值

    4、下列描述正确的是( A ,C)。

    A、由main 函数及其参数argc和* argv[]可以实现命令行方式

    B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中

    //先写缓冲区数据到文件中,再释放文件指针

    C、字符数组并不要求它的最后一个字符是‘\0’

    //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。

    D、‘A’和“A”都是字符串常量

    E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7

    5、在缓冲文件系统中用于读写的函数有( A,B,D )

    A、putchar () B、fread() C、rewind () D、purw() E、fseek()

    二、程序阅读,并给出运行结果(共10分,每题5分)。

    (1)main()

    { unsigned a,b,x

    int n;

    a=0x763 输出结果:

    n=6;

    b=a<<(12n);

    x=(a>>n2)^b; //+,,的优先级比<>高。

    printf(“\nb=%x,\nx=%x”,b,x);

    在用2个字节表示整数的系统中

    结果为

    d8c0

    d8b6

    在用4个字节表示整数的系统中

    结果为

    1d8c0

    1d8b6

    故以上两种结果都正确。

    (2) #include 〈stdin.h〉

    struct m {int x;

    int *y;

    } *p;

    int a [4]={12,33,40,100};

    struct m b [4]={10,&a[2],9,&a[3],8,&a[0],7,&a[1]}'

    main()

    p=b; 输出结果:

    printf(“%d\n”,++p>x); //>的优先级高于++,因此等于是++(p>x),为11

    printf(“%d\n”,(++p)>x); //p后移一个元素,其x值为9;

    printf(“%d\n”,++(*p>y));

    //>的优先级高于*, 此时p已指向b[1],故*(p>y)为a[3]为100.自加后为101;

    故输出结果为:

    11

    9

    101

    三、程序设计(共10分)

    在文件a.txt和文件b.txt中分别存有两个字符串,设计一个程序将这两个字符串按依序交叉的方式合并为一个字符串(例如“aaaaa”与“bbb”

    的合并结果为“abababaa”,而“bbb”与“aaaaa”的合作结果为“ bababaa”,)并将结果存入文件a.txt中。

    【答案】

    写程序时,可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结果,写到一个临时文件c中,最后把c的文件覆盖到a文件中,达到题意的要求。

    #include

    main()

    {

    FILE *fp,*fq,*fr;

    char ch;

    if((fp=fopen("a.txt","r+"))==NULL)

    { printf("cannot open file a.txt");

    exit(0);

    }

    if((fq=fopen("b.txt","r"))==NULL)

    { printf("cannot open file b.txt");

    exit(0);

    }

    fr=fopen("c.txt","w+");

    while(!feof(fp))

    {

    ch=fgetc(fp);

    fputc(ch,fr);

    if(!feof(fq))

    {

    ch=fgetc(fq);

    fputc(ch,fr);

    }

    }

    while(!feof(fq))

    {

    ch=fgetc(fq);

    fputc(ch,fr);

    }

    rewind(fp); rewind(fr);

    while(!feof(fr))

    {

    ch=fgetc(fr);

    fputc(ch,fp);

    }

    fclose(fp); fclose(fq); fclose(fr);

    }

    1.2 四川大学2001年攻读硕士学位研究生入学考试试题 及 答案

    1.2.1第2001年――C语言程序设计 题目

    一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题1分,共计6分)

    1、‘\t’表示什么?

    ①字符串常数 ②标识符 ③变量 ④字符常量

    答案:④

    2、对宏定义不正确的描述是哪一个?

    ①在进行宏定义时,可以引用已经定义的宏名,可以层层置换

    //可以引用已经定义了的宏名,可以层层置换

    ②宏名的有效范围包括本文件的任何位置

    //宏名的有效范围定义命令之后到本源文件结束,可以用#define终止宏定义的作用域

    ③宠定义不是语句,不必在行末加分号

    //是预处理定义语句

    ④对程序中双引号括起来的字符串,即使与宏名相同,也不进行置换

    3、若定义static char s[20]=”computer”;则执行语句x = strlen(s);之后,x的值为多少?

    ①20 ②9 ③8 ④19

    //strlen函数计算char*型字符串的长度的时候,并不包含末尾的\0;

    4、以下哪一个表达式取值是正确的?

    ①6>5结果为6 ②6&&5结果为7

    ③6||5结果为7 ④6<5结果为0

    5、如定义

    enum weekday {one, two, thr, fou, fiv};

    enum weekday working;

    以下哪个是不正确的枚举变量的使用?

    ①working = thr; ②working =2;

    ③working = (enum weekday)2;

    ④working = (enum weekday) (53);

    //不能对其赋值

    6、下列说法中正确的是哪一个?

    ①sizeof (char) 是结果为整型的表达式

    ②sizeof (char) 是一个不合法的表示形式

    ③sizeof (char) 是一种函数调用

    ④sizeof (char) 是结果为实型的表达式

    二、阅读程序,并回答问题(共12分)

    1、下列程序的输出是什么?(3分)

    # include

    void main ()

    char * aplha [6] = ﹛“ABC”,“DEF”,“GHI”,“JKL”,“MNO”,“PQR”﹜;

    char **p;

    int i;

    p = aplha;

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

    printf (“%s”, p[i]);

    printf (“\n”);

    //输出结果

    ABCDEFGHIJKL

    刚好是字符串数组里面的前四个元素的内容连接起来

    2、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?(6分)

    # include

    void swap (int x, int y)

    int t = x;

    x = y;

    y = t;

    void main ()

    int a, b, c;

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

    if (a>b) swap (a, b);

    if (a>c) swap (a, c);

    if (b>c) swap (b, c);

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

    //函数swap采用值传递,虽然将形参x和y交换了,但是并不影响到实参。将值传递改成指针传递就可以了。

    C函数参数采用值传递方式,虽然swap函数将形式参数x和y的值进行了调换,但是影响不到相应的实在参数。所以在主函数中,通过调用sawp函数调换a和b(或a或c,或b和c)的值是根本达不到目的的。

    修改:

    (1)(2分)

    void swap (int *x, int*y)

    int t = *x;

    *x = *y;

    *y = t;

    (2)(2分)主函数

    if(a>b) swap(&a,&b);

    if(a>c) swap(&a,&c);

    if(b>c) swap(&b,&c);

    3、假设系统为基本整型量分配2个字节,为字符型量分配1个字节。下列程序完成的功能是什么?(3分)

    # include

    union

    int n;

    char ch [2];

    ﹜u;

    void main ()

    int m;

    scanf (“%d”,&m);

    u.n = m;

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

    //该程序的功能,取用户输入的整数值的高字节和低字节,并按照任意整数的低字节和高字节分别输出。

    三、程序设计题(12分)

    假设一个文本文件中保存着100个整数,请将这100个整数按从小到大的顺序写到另一个文本文件中去,并且在新文件中每10个整数占一行。源文件名和目标文件名通过命令行参数获取。

    分数分配:

    变量定义 2分

    命令行参数处理 1分

    文件打开 1分

    文件读 2分

    排序 3分

    文件写 2分

    文件关闭 1分

    # include

    void main(int argc, char *argv[])

    FILE *fin, *fout;

    Int a [100], i, j, t;

    if(argc!=3)

    printf (“ You forgot to enter a filename\n”);

    return;

    fin = fopen (argv[1], “r”);

    fout = fopen (argv[2], “w”);

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

    fscanf (fin, “%d”, &a[i]);

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

    for (i = 0; i<99-i; i++)

    if (a[j]>a[j+1])

    ﹛t = a[j]; a[j] = a[j+1]; a[j+1]=t;﹜

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

    if (i%10 = 0)

    fprintf (fout, “%s”, “\n”);

    fprintf (fout, “%d”, a[i]);

    fclose (fin);

    fclose (fout);

    1.3 四川大学2002年攻读硕士学位研究生入学考试试题 及 答案

    1.3.1 第2002年――C语言题目

    C语言程序设计(共30分)

    一、单项选择题(在每小题的四个备选答案中,选出一个正确答案。每小题1分,共6分)

    1、如果I为整型变量,f为float型变量,c表达式'a'+I*f的类型为 。

    A、字符型 B、整型 C、单精度型 D、双精度型

    //即使是两个float型的数据相加,都化成double型 float型的数据在运算时一律转化成双精度型,提高其运算精度

    2、关于c表达式5||(a=b+c)==3的值,正确的说法为 。

    A、值为1 B、值为5 C、值为0

    D、仅这一个表达式,不能确定值,必须知道a,b,c的值后才能计算。

    //等号==的优先级高于||所以先计算(a=b+c)==3但是不论它为真或假,在与5进行或运算时,按照或运算的法则,只要一方为真,表达式的结果为真。

    3、若整型变量a的值为50,则c表达式a>>2的值为 。

    A、50 B、25 C、12.5 D、12

    //每右移一位除以2,且由于a为整型,结果为整型

    4、若c,c1,c2均为字符型变量,下列语句执行后。

    c='a';

    c1=++c;

    c2=c++;

    c1,c2的值分别为 。

    A、c1='b',c2='c' B、c1='a', c2='c' C、c1='b',c2='b' D、c1='a',c2='b'

    //前加加,先加1后使用值,后加加是先使用其值在加加,所以c加加后的值赋予c1,c1得值b,c2先使用值,再加加,c2得值b

    5、以下c 语句执行后,

    int i, s=0;

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

    printf ('%d\n', i);

    输出的内容为 。

    A、0 B、9 C、10 D、11

    //i值在循环外定义,所以其值循环结束仍有意义,得值10

    6、以下c语句执行后,

    char s1[100] =″I like C 1anguage″,s2[100];

    strcpy(s2, s1);

    strcat (s1, s2);

    puts (s2);

    输出的内容为 。

    A、I B、I like C language C、I like C language I like C language

    D、I like C language I like C language I like C language

    //连接后的串存在s1里,对s2没有影响

    二、阅读程序,写出该程序的执行结果。(4分)

    # include 〈stdio.h〉

    void main ( )

    { char a [3] [10]={"Beijing ","Shanghai", "Chengdu"};

    char p1, (*p2)[10];

    p1=a[0];

    p2=a;

    printf("%c\n",*(a[1]+1));

    // a[1]代表是第一行字符串Shanghai,加1后得值第一个字符h的地址,*取出其地址里的值h

    printf("%c\n",*(*(a+1)+2));

    // *(a+i)=a[i] 代表是第一行字符串Shanghai,加2后得值第2个字符a的地址,*取出其地址里的值

    printf("%c\n",*(p1+1));

    //p1是一字符指针,加一指向第零行第1个字符e的位置,*取出其地址里的值

    printf("%c\n",*(*(p2+1)+2));

    //p2为一指向数组的指针,p2是与数组名等价的指针,它指向2维数组的首行,p2+1指针指向了第一行字串Shanghai,加2后得值第2个字符a的地址,*取出其地址里的值

    printf("%s\n",*(p1+1));

    //打印的从第一个字符开始的第零行余下的字符串eijing

    printf("%s\n",*(p2[2]);

    //p2[2]指的是第二行,打印第二行字符串Chengdu

    printf("%s\n",*(p2+1));

    //p2+1指向的是第一行字符串shanghai

    三、按要求编写函数。(8分)

    在一程序中定义了如下结构类型用于处理单向链表:

    struct linkage {

    int value;

    struct linkage *pNext;

    };

    现已经编写出按节点的成员a值从小到大建立初始链表的函数

    create ( ),如下所示:

    struct linkage * create (void )

    struct linkage * pHead;

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

    pHead=NULL;

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

    pHead=addItem(pHead,a[i]);

    return pHead;

    在该函数的for循环前,pHead为NULL;在执行整个for循环后,创建的链表如下所示:

    即在被调函数addItem( )中,需要动态分配内存,生成新节点,将传入的第二参数的值赋给该节点的成员value:并通过第一个参数链表首节点确定适当位置放置该新节点。

    请完成函数:

    struct linkage * addItem (struct linkage *pHead, int value );

    返回值指向单向链表头节点。

    你可能用到下面的动态内存分配函数。

    void* malloc (unsigned int size);其作用是在内存的动态存储区中分配一个长度为size的连续空间。返回值为指向分配域起始地址的指针。

    1、在空链表中加第一个节点2分;

    2、加到当前链表头节点前2分;

    3、加到当前链表头节之后适当位置,可分为两步。2分;

    4、其它部分2分,包括整体结构,变量定义,返回值。

    struct linkage *addItem (struct linkgae *pHead ,int value)

    { struct linkage *p ,*q,*r,*s;

    p=pHead;

    if (!p)

    { r=(struct linkage *) malloc (sizeof (struct linkage));

    r>a=value;

    r>pNext =NULL;

    pHead=r;

    else if (value <=p>a)

    { r=(struct linkage *) malloc (sizeof (struct linkage));

    r>a=value;

    r>pNext =p;

    pHead=r;

    else

    { q=p>pNext;

    while (q)

    if (value<=q>a)

    break;

    else

    { p=q;

    q=p>pNext;

    r=(struct linkage *)malloc (sizeof (struct linkage));

    r>a=value;

    r>pNext=q;

    p>pNext=r;

    return pHead;

    四、程序设计。(12分)

    单位HTML文件由标签,标题和正文主体等部分组成。如下所示:

    〈HTML〉

    〈HEAD〉

    〈TITLE〉HTML标题部分

    〈/HEAD〉

    这里是HTML文件的主体部分。
    换新行。

    〈/HTML〉

    符号""及其之间的内容是标签,如〈HTML〉,等。其它部分是标题和主体。请按以下说明和要求完成程序,将简单的HTML文件转换为TXT文件:

    1. 序将简单HTML文件的有标签和换行符(\n)(去掉。标题部分结束(遇到标签)后加上一个换行符(\n)。每一个
    标签换成一个换行符(\n)。其余部分原样保留。如上面的简单HTML文件处理为(↙表示换行):

    HTML标题部分↙

    这里是HTML文件的主体部分。↙

    换新行。

    2.简单HTML文件的标签内没有嵌套情况,即在""这间不会再出现""。

    3.标签内的内容大小写无关。如
    ,
    ,
    等价。

    4.示签的""与标签内容间无空格。即不会出现
    或< BR>等情况。

    5.标题和正文中不会出现""字符,它们通过转义字符实现,这时尤需考虑。

    6.程序需要处理命令行参数。第一个参数指要处理的HTML文件名,第二个参数指定处理后要存放的文件名。这两个文件都是文本文件。

    7.程序必须进行必要的出错处理,如无法打开文件等。

    8.程序不需要包含头文件。

    1、main()函数形参处理:2分。

    2、变量定义1分。

    3、打开关闭文件2分;

    4、读源文件1分;

    5、能从标签中找出内容〈BR〉〈/TITLE〉换为'\n'部分2分;

    6、区分开标签和其它部分,并按要求写入目标文件2分;

    7、整体结构正确2分;

    void main (int argc, char *argv[])

    { char C,tag[7];

    int status ,len ;

    FILE*fin,*fout;

    if (argc!=3)

    { printf("参数个数不对!")

    exit (1)

    if ((fin=fopen (argv [1],"r")))==NULL)

    printf(“打不开源文件”);

    exit(1);

    }

    if ((fout=fopen (argv [2],"w")))==NULL)

    printf("无法写入文件!");

    fclose (fin);

    exit (1);

    }

    status =0;

    while ((c=fgetc (fin)))!=EOF)

    switch (C)

    case '<':

    status=1;

    len=0;

    break;

    case ‘>’:

    status=0;

    if(len<=6)

    tag[len]=0;

    if(!strcmp(tag,”/title”)||!strcmp(tag,”br”))

    fputc(‘\n’,fout);

    break;

    case '\n':break;

    default:

    if (! status)

    fputc (c,fout);

    else

    { len++;

    if (len<=6);

    tag[len1]=c;

    fclose (fin);

    fclose (fout);

    1.4 四川大学2003年攻读硕士学位研究生入学考试试题及 答案

    1.4.1 第2003年――C语言题目

    C语言程序设计(40分)

    一、分析下面的 程序,写出程序执行结果。(每小题4分,共2分)

    1、

    #include 〈stdio.h〉

    void swap (int **p1,int **p2)

    { int *t;

    t=*p1;

    p1=p2;

    *p2=t;

    void main( )

    { int a=1、b=3、*p=&a、*q=&b;

    swap(&p、&q);

    printf('%d、5d、%d、%d\n"、a、b、*p、*q;

    }

    //因为在swap函数里交换的是两个参数的地址,所以参数使用的是两级指针,表示交换的是指针的地址,最终使p指向了b,q指向了a。

    1,3,3,1

    2.

    # include

    void merge (char *d、char sl、char、S2)

    { while (*sl!='\0' && *S2!='\0')

    if (*sl

    d++=*sl++;

    else

    d++=*s2++;

    while (*sl!='\0) *d++=sl++;

    while (*s2!='\0') *d++=s2++;

    *d='\0',

    }

    void main( )

    { char sl="acdgh",s2="bcfhi",s3[20];

    merge(s3,s1,s2);

    puts(s3)

    }

    //将两个字符串合为一个按照字母顺序排列的串

    abccdfghhi

    二、按要求完成C函数。(每小题10分,共20分)

    1.int maxsameChar(char *s);

    该函数计算字符串 s中最大连续相同的字符个数。例如,若s 为"aaabbbb",则返回值为4;若s为"abcde",则返回值为1。

    int maxSameChar (char *s)

    { int temp=1, max=0;

    char c='\0';

    while (*s)

    { if (c==*s)

    tmpe++;

    else

    { c=*s;

    temp=1;

    if (max<temp)

    max=temp;

    s++;

    return max;

    2. struct mode *reverse(struct mode *pHead);

    其中,struct node 定义如下:

    struct node

    { int key ;

    struct node *pNext;

    };

    此函数传入的pHead指向要处理的单向链表头,该链表以NULL指针结束。函数实现链表链接方向(包括pHead 指向的原头节点)的反转,如图1所示。并将新链表头指针作为函数值返回。在完成此函数时,你只能利用原有链表节点,不能申请新节点空间。

    struct node* reverse (struct node* pHead)

    { struct nodt *p,*q,*t;

    if (pHead==NULL)

    return NULL;

    p=pHead;

    q=p>pNext;

    while (q! NULL)

    { t =q>pNext;

    q>pNext=p;

    p=q;

    q=t;

    pHead>pNext=NULL;

    pHead=p;

    return pHead;

    三、按要求完成简单的客车车次查询程序。(12分)

    某车站需要一个简单的客车车次查询程序。说明如下:

    1. 客车车次数据文件checi.txt放在c:\data目录下,格式为:

    T8 成都 北京西 09:30

    1364 成都 北京西 14:20

    K118 攀枝花 北京西 22:00

    … … …

    其中每行为一次车的信息,分为4个数据项:车次,始发站,终点站和离开本站时间。前三个数据项留的宽度为8字符,最后一项结束后即换行。数据项间一定有空格隔开,每一数据项内无空格。

    2.你的程序对用户通过命令行参数指一的车次,在客车车次数据文件中查找相应车次信息并输出该次车的始发站,终点站和离开本站时间,如果未找到,则输出“找不到该次车信息!”。

    3.你的程序可以使用标准的C库函数,可以不引用文件。程序中应给出必要的注释。

    int main (int argc, char *argv [ ])

    { char info [4] [20];

    FILE * fp;

    int I,found=0;

    if (argc!=2)

    { printf("参数个数不正确!\n");

    return 1;

    fp=fopen ("c:\\checi. txt ","r");

    if (fp==NULL)

    { printf ("无法打开数据文件!\n");

    return 1;

    while (! feof (fp))

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

    fscanf (fp,"%s",info[i]);

    if (!stricmp (info[0],argv[1]))

    { found=1;

    printf("始发站:%s\n",info [1]);

    printf("始发站:%s\n",info [2]);

    printf("离本站时间:%s\n",info [3]);

    break;

    if (! found )

    printf("找不到该次车信息!\n");

    return 0;

    1.5 四川大学2004年攻读硕士学位研究生入学考试试题及 答案

    1.5.1 第2004年――C语言题目

    C语言程序设计(40分)

    一、写出下列表达运算后a的值,设a,b 均为 int ,每个表达式运算到a=2,b=3。(5分)

    (1) a+=b*5

    //a=a+b*5,为17

    (2) a=b++

    //a=3

    (3) a%=(a%=b)

    //结果为0

    (4) a=a>b&&b>a||a

    //>的优先级高于&&和||原式理解为(a>b)&&(b>a)||a

    &&运算符高于||,原式理解为((a>b)&&(b>a))||a,因为a值为2,结果为1真。或运算是有一为1

    (5) a=!b<a&&!a<b

    //!的运算符最高,<其次,&&最小原式理解为((!b)<a)&&((!a)<b))结果为1

    二、下面的程序构造一个有向图,请画出其示意图。(10分)

    include 〈stdio.h〉

    struct node /*有向图的节点类型*/

    { int key;

    struct node *left,*right,*up,*down;

    };

    int main (int argc ,char * argv [])

    { int i;

    struct node nodes[5];

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

    { nodes [i].key=i;

    nodes [i].left=NULL;

    nodes [i].right=NULL;

    nodes [i].up=NULL;

    nodes [i].down=NULL;

    nodes [0].left=nodes+1;

    nodes [1].left=nodes;

    nodes [1].up=nodes+2;

    nodes [2].down=nodes+3;

    nodes [3].right=nodes+4;

    nodes [4].up=nodes;

    nodes [4].down=nodes+1;

    return 0;

    三、按要求完成函数。(10分)

    int sameChar sAT SamePos (char *s1,char *s2);

    两个字符串的字符进行同位置比较,返回相同的字符数(串结束符‘\0’不比较)。

    例如,若s1="abc",s2="Abc",则返回值为2。

    int sameCharAtSame Pos (char *s1,char *s2)

    int counter =0;

    while (*sl && *s2)

    if (*s1 == *s2)

    counter ++;

    s1++;

    s2++;

    return counter;

    四、按要求编写程序对一种特殊字符串解码。(15分)

    要处理的特殊字符串由A,C,G,U四个字符组成,如下所示:

    ACUGCCCAUGAAAAACUUUUGACAC

    其有效信息子串从第一次出现“AUG”后开始,遇到“UGA”结束(不包括“AUG”和“UGA”。)如上面的编码串需解码的有效子串为:

    AAAAACUUU

    有效子串中每3个字符(如“AAA”,“CGA”)作为一个密码子(可以保证,有效子串的长度一定为3的整数倍。)可能的密码子(62种)及相应码值以如下形式放在编码文件code.txt中(按密码子字典序排列);

    AAA K

    AAC N

    …………

    UUU F

    请编写C程序对存放在文件中的特殊字符串解码,在屏幕输出解码串。如:KNF

    KNE

    要求:

    1、编码文件code.txt放在c盘根目录下;

    2、要解码的特殊字符串以文件形式存放,其串长不超过1024字符;

    3、你编写的程序应能处理命令参数,指定要解码的字符串文件;

    4、程序中可以使用C语言的标准库函数,不需要写出头文件;

    5、程序中应有必有的注释。

    #include 〈stdio.h〉

    #include 〈string.h〉

    struct

    char name[4];

    char code;

    } table [62];

    int main (int argc,char *argv [ ])

    FILE *code? file=NULL, *string file =NULL;

    char string [1024+2],buffer[4],*p,*end ;

    int I;

    /* 检查命令行参数*/

    if (argc<=1)

    /*打开编码文件以及待解码文件*/

    code? file=fopen ("c:\\code. txt","r");

    string file =fopen (argv[1],"r");

    if (code_file= = NULL | | string_file = =NULL)

    return 1;

    /* 读编码文件,将结果记入表中 */

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

    {

    fscanf(code_file, "%s %c\n", tabie[i], name, &table[i].code);

    }

    /*读待解码文件内容到string中 */

    fgets (string, sizeof (string), string_file);

    /* 扫描有效子串头 */

    p= strstr(string, "AUG");

    end = strstr (p + 3 , "UGA");

    /*读有效子串,查表输出解码字符,直到子串尾 */

    for (p+=3; p

    {

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

    {

    buffer [i] = p [i];

    }

    buffer [i] ='\0';

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

    {

    if (strcmp (buffer, table [i].name)) = = 0)

    {

    printf("%c", table[i]. code);

    break;

    }

    }

    }

    /* 关闭编码文件以及待解码文件 */

    fclose (code_file);

    fclose (string_file);

    return 0;

    }

    1.6 四川大学2011年攻读硕士学位研究生入学考试试题及 答案

    1.6.1 第2011年――C语言题目

    C语言程序设计(50分)

    一、 读程序,写执行结果(8分)

    1、

    #include

    int main( )

    { int a=4,b=3,c=1,x;

    x=a>b;

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

    //结果为1

    x=a+b++;

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

    //结果为6

    x=a>b;

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

    //结果为假,0

    x=c&&b==c;

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

    //==的运算级高于&&, c&&(b==c)结果为假0

    return0;

    }

    2.

    #include

    int main( )

    { inti,j;

    for(I=0;I=8;I+=2)

    { for(j=0;j

    printf(”+”);

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

    printf(”*”);

    printf(\n”);

    }

    return0;

    }

    ++++*

    +++***

    ++*****

    +*******

    二.按要求完成函数。(28分)

    1. 一种最简单的字符串加密方法是将字符串的每一字符加上一个偏移量offset(不考虑溢出)。请编写木相应的编解码函

    数,其原型分别为:

    char*encode(char*s,int offset);

    char *decode(char *s,offset);

    char *encode(char *s,int offset)

    {

    char *p=s;

    while (*p)

    {

    *p +=offset;

    }

    renturn s;

    }

    char *decode(char *sm int iffset)

    {

    char *p= s;

    while(*p)

    {

    *p=offset;

    }

    return s;

    }

    2编写函数将两个节点值递增的单向链表归并为一个。要求利用原节点空间。链表节点定义为:

    struct node

    { int value;

    struct node *pNext;

    };

    函数原型为:

    struct node *merge(struct node *a, struct node *b);

    其中a,b为要归并的两个单向链表头节点指针,函数返回值为归并后的单向链表头节点指针。

    struct node

    {

    int value

    struct node *pNext;

    }

    struct node *merge(struct node *a, struct node *b)

    {

    struct node *p;

    struct node *q

    struct node *t;

    if (a>value <=b>vaLue)

    {

    p=a;

    q=b

    }

    else

    {

    p=b

    q=a;

    }

    t=p;

    while (q)

    {

    if (p>pNext ==NULL)

    {

    P>Pnext=q

    break;

    }

    if (q>value

    pNext>value)

    {

    struct node.*k=q>pNext;

    q>pNxt=p>pNext;

    p>pNext=q;

    q=k;

    continue;

    }

    p=p>pNext;

    }

    return t;

    }

    三.编写程序模拟数字LED显示。(14分)

    编写程序完成如下功能:用户键盘输入最多四位的整数,在屏幕上以类似LED方式显示。如用户输入为:

    8234

    则输出

    其中每个数字字模均为7行×4列。09+个数字的字模顺序地以文本形式存放在方件C:\font.txt中。

    要求:

    1、 输出的各数字间有1个空格;

    2、 你的程序可以使用C语言标准库函数,不需要写出头文件;

    3、 程序中应有必有的注释。

    char font[10][7][5];

    94 int n;

    95 int digit[4];

    96 int length=0;

    97

    98/ * 装载字体文件 */

    99 void load fontsO

    100 {

    101 int I, j, k;

    102 FILE *file;

    103

    104 file = fopen(”c:\\font”,”r”);

    105 if (file==NULL)

    106 {

    107 printf(” 打开字体文件 font. Txt 错误|n”);

    108 exit(1);

    109 }

    110

    111 for (k = 0; k<10;k++)

    112 {

    113 for (I=0; I<7; I++)

    114 {

    115 char line[10];

    116 fgets(line, 5, file);

    117 for (j=0; j<4;j++)

    118 {

    119 font[k][I][j]=line[j];

    120 }

    121 font[k][I][4]=0;

    122 }

    123 }

    124

    125 fclose(file);

    126 }

    127

    128/* 将输入的整数解码为单个的数字*/

    129 void decode()

    130 {

    131 int I;

    132 int m=n;

    133 for (I=0; I <4;I++)

    134 {

    135 digit[I]=m % 10;

    136 m =m/10;

    137

    138 if (m==0)

    139 break;

    140 }

    141

    142 length = I + 1;

    143 if (length >=4)

    144 length=4;

    145 }

    146

    147 /* 显示LED */

    148 void disnlav()

    149 {

    150 int I,j;

    151 for (I=0; I<7;I++)

    152 {

    153 for (j = lengthI; j>=0;j__)

    154 {

    155 printf(”%s”, font[j][I]);

    156 printf(” ”);

    157 }

    158 printf(” \n”);

    159 }

    160 }

    161

    162 int main()

    163 {

    164

    165 load fonts();

    166

    167 scanf(”%d”, &n);

    168 decode();

    169 display();

    170 }

    C语言试题及答案的延伸阅读——c语言学习体会

    得上次开班会的时候我吹牛说要和你们一起学习c语言,不知不觉已经快半个月拉。我得对自己的话负责。今天我把借来的教材看了看,以前真的是不了解,今天才

    知道它是贝尔实验室的设计师Dennis在1972年设计的。c语言是其他计算机语言的基础,其他的计算机语言都是在它的基础上研发。所以学好c语言对于

    以后要在自动化专业有所发展的同学是非常有好处的,尤其是将来的plc编程、电子产品设计等等,都需要用到c语言。

    今天我学习了一个最最简单的程序,感觉十分有收获,明白了它的最基本的道理——它也是一门语言,和我们的汉语是一样的,它也有自己的语法、逻辑结构,只要是能真正的去理解它,还是很容易学会的。

    今天学习的程序如下:

    #include#include

    main()

    {

    double x,s;

    printf("input number:\n");

    scanf("%lf",&x);

    s=sin(x);

    printf("sine of %lf is %lf\n",x,s);

    }

    这个的功能

    展开全文
  • C语言测试题及答案解析C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。以下是小编为大家搜索整理的C语言测试题及答案解析, 希望能给大家带来帮助!更多精彩内容请及时关注...

    C语言测试题及答案解析

    C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。以下是小编为大家搜索整理的C语言测试题及答案解析, 希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

    7292c3b06d5045f85a7114079ef4a48c.png

    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)

    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%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

    /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

    11.如果int a=3,b=4;则条件表达式"aA、 3

    B、 4

    C、 0

    D、1

    详见教材P97.

    表达式1?表达式2:表达式3

    先计算表达式1,

    若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值;

    若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值

    此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式x

    A、4

    B、3

    C、2

    D、0

    E)1

    13.C语言中,关系表达式和逻辑表达式的值是( B ) 。

    A、0

    B、 0或1

    C、 1

    D、‘T’或’F’

    14. 下面( D )表达式的值为4.

    A、 11/3

    B、 11.0/3

    C、 (float)11/3

    D、 (int)(11.0/3+0.5)

    14~16题为同一类型

    详见教材P54~56.

    (1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

    (2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

    选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

    选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

    选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

    选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

    15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )

    A、b=1.0/a

    B、b=(float)(1/A、

    C、b=1/(float)a

    D、b=1/(a*1.0)

    16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)

    展开全文
  • 《计算机二级C语言测试题》由会员分享,可在线阅读,更多相关《计算机二级C语言测试题(22页珍藏版)》请在人人文库网上搜索。1、第一章)1. 以下关于算法的描述不正确的是 。A. 任何一个问题,它的实现算法是唯一的B. ...
  • 2017年计算机二级C语言测试题及答案练习是帮助我们巩固知识的最好方法,以下是小编为大家整理的2017年计算机二级C语言测试题及答案,希望对大家有帮助!1.#include "stdio.h"main(){char c;c=getchar();while(c!='?')...
  • 昆明理工大学C语言测试题题目1C语言中,为了区别一般的变量,符号常量必须用大写字母表示。错题目2用float定义的实型变量在内存占8个字节,输入/输出格式符是%f。错题目3对于int 型变量k1,k2,k3,k4,若用以下语句: ...
  • 高三计算机专业C语言测试题(1)学号姓名:得分:一、选择题40’1、下列选项是C语言保留字的一项是()ADOBgosubCstrutDCHAR2、下列选项中可以作为C语言用户标识符的一组是()Avoid,define,wordBa3_b3,_123,IFCfor,_abc,...
  • 上海交通大学级C语言测试题一、 选择题(1)以下选项中,能用作用户标识符的是____A)classB)forC)_2013D)2013_(2)设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是____A)scanf("%d",pa);B)scanf...
  • c语言测试题及分析

    2021-10-23 21:51:25
    C语言 习题内容: 答案:ABD A.或 (一个为1则为1) B.异或 (不同为1,相同为0) C.与 逻辑运算符(两边条件为真则真,是对条件操作,不是对位操作) D.左位移 E.逻辑非 F.运算取余 答案:B 考查三目运算符。 ...
  • 上海交通大学2017级C语言测试题一、 选择题(1)以下选项中,能用作用户标识符的是____A)classB)forC)_2013D)2013_(2)设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是____A)scanf("%d",pa);B)...
  • 2016计算机二级C语言测试题及答案解析1.C语言程序从 C 开始执行。A、 程序中第一条可执行语句B、 程序中第一个函数C、 程序中的main函数D、包含文件中的第一个函数2、以下说法中正确的是( C )。A、C语言程序总是从第...
  • C语言测试题:文件课案一、选择题: (1)以下叙述中错误的是 A)C语言中对二进制文件的访问速度比文本文件快 B)C语言中,随机文件以二进制代码形式存储数据 C)语句 FILE? fp; 定义了一个名为fp的文件指针 D)C语言...
  • 精品文档精品文档C语言知识测试题一、单项选择题(每小题5分,共150分)1.下列合法的常量是()。A.-32169B.0128C.0XDEFGD.13E0.52.以下选项中不合法的标识符是()。A.printfB.FORC.&aD._003.以下选项中不属于正确...
  • C语言测试题的.doc

    2021-05-22 14:26:32
    C语言测试题的《C语言程序设计》课程自测1章 C语言概述一、判断题1. C语言程序中,任何英语单词均可以作标识符。( )答案为×2. 在C语言的源程序中,注释使用越多,编译之后的可执行程序的执行效率越低。( )答案为×...
  • 单项选择(每小2分,共50分)1、一个C程序的执行是从___A____。A、本程序的main函数开始,到main函数结束B、本程序的main函数开始,到本程序文件的最后一个函数结束C、本程序文件的第一个函数开始,到本程序文件的...
  • 资源描述:2016年计算机二级C语言测试题及答案解析(二) 基本输入输出及流程控制 1. include main { int a1,b3,c5; if cab printf“yes\n“; else printf“no\n“; } 运行结果为no 详见教材p89 选择结构 详见教材p91...
  • 选项A,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值1. *P+9=1+9=10选项C,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值。...41. 在C语言中,以 D 作为字符串结束标志A、’\n’B、’ ’C...
  • C语言中,为了区别一般的变量,符号常量必须用大写字母表示。错题目2用float定义的实型变量在内存占8个字节,输入/输出格式符是%f。错题目3对于int 型变量k1,k2,k3,k4,若用以下语句: scanf("%d%d",&k1,&k2)...
  • case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到break或switch结束 本过程: 首先从键盘接收一个字符’A’并将其放在变量ch中。 执行switch语句。...
  • C语言测试题:文件

    2021-05-19 17:10:56
    这都是历年比较经典的,学语言的同学必看哦,这是矿大老是总结的一、选择:(1)以下叙述中错误的是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE fp;...
  • 2017计算机二级C语言测试题及答案此题 首先为整型变量赋初值x1=1,x2=2表达式1为i=1,表达式2(循环条件)为i<=N即i<=4,表达式3为i++循环变量初值i为1,循环条件(即表达式2)i<=4成立,进入第1次循环第1次循环...
  • C语言测试题(2)

    2021-11-11 18:26:09
    笔试 一.单项选择(共20,每2分) 1.请选择下面代码的输出结果( ) int main(int argc, char *argv[]) { int a = 10;...2.C语言里 i = 5, j = 7,请问i | j等于多少?( ) A.1 B.3 C...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,769
精华内容 23,507
关键字:

c语言测试题

c语言 订阅