《C语言程序设计》期末考试试题(A卷)

本试卷考试时间90分钟
班级(填写:计算机网络技术21X(X是班级号))
    ____________
学号(写全号)
    ____________
姓名
    ____________
C语言源程序的基本单位是()。
A、过程
B、函数
C、子程序
D、标识符
以下叙述不正确的是[   ]。
A、一个C源程序可由一个或多个函数组成
B、一个C源程序只能由一个函数,即main函数
C、一个C源程序有且只有一个主函数,其它函数不限
D、一个C源程序可以只有一个主函数,没有其它函数
若有定义“char a; int b; float c; double d;”,则表达式“a*b+d-c”值的类型为()。
A、char
B、int
C、float
D、double
若a是int 型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为( )。
A、36
B、-36
C、-60
D、60
C 语言中,要求运算对象只能为整数的运算符是(  ) 。
A、/
B、%
C、+
D、*
下面程序的输出结果是()。

#include <stdio.h>

int main ( ){

    int a = 10;

    if( a < 20 ) {

         printf("a 小于 20!" );

      }

     printf("a 的值是 %d\n", a); return 0;

}

A、编译提示错误
B、输出结果是:a 小于 20!
C、输出结果是:a 小于 20!a 的值是 10
D、不提示错,也没有任何结果输出。
下面程序的结果是()。

#include <stdio.h>

main() {

    int m;

    m=2;

    switch(m-2) {

    case 0:

    case 1:printf("yes");

    case 2:printf("ok");break;

    default:printf("no");

    }

 }

A、yes
B、yesok
C、C、no
D、ok no
下列程序运行后的输出结果是() 。

main() {

      int n=3;

      do {

            n++;

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

      } while(--n);

 }

A、2591
B、1925
C、语法错误
D、死循环
下列选项中,合法的数组定义是()。
A、int a[]=”hello”
B、int a[6]={0,1,2,3,4,5,6}
C、char ch=”hello”
D、char ch[]={2,3,4,5,6}
设有定义:char s[12]="string";则printf("%d\n",strlen(s));正确的运行结果是()。
A、7
B、6
C、11
D、12
有字符数组a[80]和b[80],则正确的输出语句是()。
A、puts(a,b);
B、printf(%s,%s,a[],b[]);
C、putchar(a,b);
D、puts(a);puts(b);
请阅读以下程序。

main(){

      int x=1,y=0,a=0,b=0;

      switch(x){

      case 1:

            switch(y)

            {

                   case 0:a++; break;

                  case 1:b++; break;

            }

      case 2:a++;b++; break;

      }

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

}

上述程序的输出结果是()。

A、a=2,b=1
B、a=1,b=0
C、a=1,b=1
D、a=2,b=2
判断char型变量c1是否为小写字母的正确表达式为()。
A. a=c1=z
B.c1=ac1=z
C.c1=allc1=z
D.c1=ac1=z
下面程序的输出结果是(  ) 。

main() {

       int a[10]={1,2,3,4,5,6,7,8,9,10},

       *p=a;  

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

}

A、4
B、1
C、2
D、3
C语言中while和do-while循环的主要区别是()。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
有以下程序,程序运行后的输出结果是( )。

void f(int *q) {

       int i=0;

      for(;i<5; i++) (*q)++;

}

main() {

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

      f(a);

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

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

} 程序运行后的输出结果是( )。

A、2,2,3,4,5,
B、6,2,3,4,5,
C、1,2,3,4,5,
D、2,3,4,5,6,
下面程序的运行结果是()。

main()

{     int x=1;

      while(x<20){

            x=x*x;

            x=x+1;

      }

      printf("%d",x);

}

A.1
B.20
C.25
D.26
下列程序执行后的输出结果是( )。

void func1(int i);

void func2(int i);

char st[]="hello,friend!";

void func1(int i) {

        printf("%c",st[i]);

        if(i<3){

                i+=2;

                func2(i);

        }

}

void func2(int i) {

        printf("%c",st[i]);

        if(i<3){

                i+=2;

                func1(i);

        }

}

main() {

        int i=0;

        func1(i);

        printf("\n");

}

A、hello
B、hel
C、hlo
D、hlm
设有下面的定义:

struct st

{

       int a;

       float b;

 }d;

int *p;

要使p指向结构变量d中的a成员,正确的赋值语句是( )。

A、*p=d.a
B、p=a;
C、p=d.a;
D、p=d.a;
若fp是指向某文件的指针, 当未遇到该文件结束标志时函数feof(fp)的值为()。
A、0
B、1
B、-1
C、一个非0值
若要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则文件使用方式字应该是()。
A、ab+
B、wb+ 
C、rb+
D、ab
当a=2,b=2时,表达式a==b的值为()。
A、2
B、1
C、0
D、5
下列运算符中,优先级最高的是()。
A、
B、-
C、||
D、==
运行下面程序时,若从键盘输入"5 3",则程序的输出结果是()。
A、35
B、53
C、xy
D、xy
已知int x=1,y=2,z=3; 执行语句if(x>y) z=x;x=y;y=z;后x,y,z的值是()。
A、x=1,y=2,z=3
B、x=2,y=3,z=3
C、x=2,y=3,z=1
D、x=2,y=3,z=2
已有定义:char a[ ]="xyz",b[ ]={'x', 'y', 'z'};,下列叙述中正确的是( )。
A、数组 a 和 b 的长度相同
B、a 数组长度小于 b 数组长度
C、a 数组长度大于 b 数组长度
D、上述说法都不对
以下关于数组的描述正确的是()。
A、数组的大小是固定的,但可以有不同类型的数组元素
B、数组的大小是可变的,但所有数组元素的类型必须相同
C、数组的大小是固定的,所有数组元素的类型必须相同
D、数组的大小是可变的,可以有不同类型的数组元素
下面选择中正确的赋值语句是(设char a[5],*p=a;)。
A、*a=abcd;
B、*p=abcd;
C、a=abcd;
D、p=abcd;
当定义一个结构体变量时,系统分配给它的内存空间字节数是()。
A、各成员所需内存字节数的总和
B、结构体中第一个成员所需内存字节数
C、结构体中最后一个成员所需内存字节数
D、成员中占内存字节数最大的
下面的变量表示文件指针变量的是()
A、FILE *fp;
B、FILE fp;
C、FILER *fp;
D、file *fp;
在C中,下面对文件的叙述正确的是()
A)用“r”方式打开的文件只能向文件写数据
B)用“R”方式也可以打开文件
C)用“w”方式打开的文件只能用于向文件写数据,且该文件可以不存在
D)用“a”方式可以打开不存在的文件
在C中,常用如下方法打开一个文件:

if((fp=fopen("file1.c","r"))==NULL)

{

       printf("cannotopenthisfile\n");

       exit(1);

}

其中函数exit(1)的作用是()

A、退出C环境
B、退出所在的复合语句
C、当文件不能正常打开时,关闭所有的文件,并终止正在调用的过程
D、当文件正常打开时,终止正在调用的过
有如下程序:

#include <stdio.h>

main()

{    FILE *fp1:

     fp1=fopen("f1.txt","w");

     fprintf(fp1,"abc");

     felose(fpl);

}

若文本文件f1.txt有内容为good,则运行以上程后文件f1.txt中的内容为()。

A、Goodabc
B、Abcd
C、abc
D、abcgood
以下叙述中错误的是()。
A、用户所定义的标识符允许使用关键字
B、用户所定义的标识符应尽量做到“见名知意”
C、用户所定义的标识符必须以字母或下划线开头
D、用户定义的标识符中,大、小写字母代表不同标识
以下表达中不正确的选项是()。
A、C语言中,随机读写方式不适用于文本文件
B、C语言中对二进制文件的访问速度比文本文件快
C、C语言中,顺序读写方式不适用于二进制文件
D、C语言中的文本文件以ASCⅡ码形式存储数据
以下()是正确的变量名。
A、a.bee
B、-p11
C、int
D、p_11
下面程序的输出结果是( )。

#include<stdio.h>

int a[]={2,4,6,8};

main() {

       int i, *p=a;

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

              a[i]=*p;

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

}

A、6
B、8
C、4
D、2
下面程序的输出结果是( )。

#include<stdio.h>

main()

{

     int a=97,b=65;

     printf("a=%d,b=%c",a,b);

}

A、a=97,b=A
B、a=a,b=65
C、a=97,b=65
D、a=a,b=A
以下对二维数组a的正确说明是()。
A. int a[3][];
B. float a(3,4);
C. double a[3][4];
D. float a(3)(4)
下列符号中用来表示C语言中的回车换行的是()
A. \”
B. \n
C. \b
D. \\
请判断定义字符串的语句:char str[ ]="\0"; 是否正确。
正确
错误
调用 printf()函数时,必须要有输出项。
正确
错误
假设p1、p2为两个指针变量,若p1>p2表示p1处于高地址位置。
正确
错误
定义指针变量时需要使用指针变量的定义符*,该符号是指针的组成部分。
正确
错误
char *s=”china”;等价于char *s; s=”china”;
正确
错误
C语言中,在一个函数内部可以定义另一个函数。
正确
错误
C语言中,每个函数都可以被单独编译。
正确
错误
C语言中,每个函数都可以被其他函数调用,包括 main 函数。
正确
错误
使用getchar()函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码。
正确
错误
当指针变量定义并初始化后,可以用该指针变量。
正确
错误
语句int a[5]={10*1};可以正确的对数组进行初始化。
正确
错误
用typedef可以定义各种类型名,但不能用来定义变量。
正确
错误
结构体类型的成员可以是一个结构体变量。
正确
错误
定义结构体数组可以先定义结构体类型再定义结构体数组。
正确
错误
C语言结构体类型变量在执行期间所有成员一直驻留在内存中.。
正确
错误
指针p已定义指向struct student类型的数据,它只能指向一个结构体数据,而不能指向元素中的某一成员。
正确
错误
在C语言中,可以把一个结构体变量作为一个整体赋值给另一个具有相同类型的结构体变量。
正确
错误
C语言是一门高级编程语言。
正确
错误
C语言中的函数名、变量名等不区分大小写。
正确
错误
C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
正确
错误

64题 | 被引用0次

使用此模板创建