C语言 百文网手机站

C语言模拟试题练习

时间:2022-12-09 09:15:58 C语言 我要投稿

C语言模拟试题练习

  在日常学习和工作中,我们最不陌生的就是练习题了,学习需要做题,是因为这样一方面可以了解你对知识点的掌握,熟练掌握知识点!同时做题还可以巩固你对知识点的运用!什么样的习题才是好习题呢?以下是小编整理的C语言模拟试题练习,欢迎大家分享。

C语言模拟试题练习

  C语言模拟试题练习1

  1.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。

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

  A、10

  B、9

  C、6

  D、5

  先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

  a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

  a[9]对应下面数组中的元素为6. 因此a[9]即为6

  2.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

  A、2

  B、3

  C、4

  D、3 6 9

  二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

  3.对二维数组的正确定义是(C )

  详见教材P149~152,二维数组的定义、初始化

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

  二维数组可以看做是矩阵

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

  一维数组初始化时可以省略数组长度

  二维数组初始化时可以省略行数,但不能省略列数

  选项A,B,都省略了列数

  选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

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

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

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

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

  4.已知int a[3][4];则对数组元素引用正确的是__C___

  A、a[2][4]

  B、a[1,3]

  C、a[2][0]

  D、a(2)(1)

  5.C语言中函数返回值的类型是由 A 决定的.

  A、函数定义时指定的类型

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

  C、 调用该函数时的实参的数据类型

  D、形参的数据类型

  6. 在C语言中,函数的数据类型是指(A )

  A、 函数返回值的数据类型

  B、 函数形参的数据类型

  C、 调用该函数时的实参的数据类型

  D、任意指定的数据类型

  7.在函数调用时,以下说法正确的是( B )

  A、函数调用后必须带回返回值

  B、实际参数和形式参数可以同名

  C、函数间的数据传递不可以使用全局变量

  D、主调函数和被调函数总是在同一个文件里

  8. 在C语言中,表示静态存储类别的关键字是: ( C )

  A、 auto

  B、 register

  C、static

  D、extern

  9.未指定存储类别的变量,其隐含的存储类别为(A )。

  A、auto

  B、static

  C、extern

  D、register

  10. 若有以下说明语句:

  struct student

  { int num;

  char name[ ];

  float score;

  }stu;

  则下面的叙述不正确的是: (D )

  A、 struct是结构体类型的关键字

  B、 struct student 是用户定义的结构体类型

  C、 num, score都是结构体成员名

  D、 stu是用户定义的结构体类型名

  11.若有以下说明语句:

  struct date

  { int year;

  int month;

  int day;

  }brithday;

  则下面的叙述不正确的是__C___.

  A、 struct是声明结构体类型时用的关键字

  B、 struct date 是用户定义的结构体类型名

  C、 brithday是用户定义的结构体类型名

  D、year,day 都是结构体成员名

  12. 以下对结构变量stul中成员age的非法引用是 B

  struct student

  { int age;

  int num;

  }stu1,*p;

  p=&stu1;

  A、 stu1.age

  B、 student.age

  C、 p->age

  D、(*p).age

  13.设有如下定义:

  struck sk

  { int a;

  float b;

  }data;

  int *p;

  若要使P指向data中的a域,正确的赋值语句是 C

  A、 p=&a;

  B、 p=datA、a;

  C、p=&datA、a;

  D、*p=datA、a;

  14.设有以下说明语句:

  typedef struct stu

  { int a;

  float b;

  } stutype;

  则下面叙述中错误的是( D )。

  A、struct是结构类型的关键字

  B、struct stu是用户定义的结构类型

  C、a和b都是结构成员名

  D、stutype是用户定义的结构体变量名

  15.语句int *p;说明了 C 。

  A、p是指向一维数组的指针

  B、p是指向函数的指针,该函数返回一int型数据

  C、p是指向int型数据的指针

  D、p是函数名,该函数返回一指向int型数据的指针

  16、以下语句的输出结果是( D)。

  int a=-1,b=4,k;

  k=(+ +a<0)&&!(b - -<=0);

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

  A. 1,0,4

  B. 1,0,3

  C. 0,0,3

  D. 0,0,4

  17、下列程序的输出结果是(D )。

  char *p1="abcd", *p2="ABCD", str[50]="xyz";

  strcpy(str+2,strcat(p1+2,p2+1));

  printf("%s",str);

  A. xyabcAB

  B. abcABz

  C. ABabcz

  D. xycdBCD

  18、执行下面的程序后,a的值是(B )。

  define SQR(X) X*X

  main( )

  { int a=10,k=2,m=1;

  a/=SQR(k+m)/SQR(k+m);

  printf("%d ",a); }

  A. 10

  B. 1

  C. 9

  D. 0

  19、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B)。

  A.P+i*2

  B. P+(i-1)*2

  C. P+(i-1)

  D. P+i

  20、下列程序执行后输出的结果是( A)。

  int d=1;

  fun (int p)

  { int d=5;

  d + =p + +;

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

  main( )

  { int a=3;

  fun(a);

  d + = a + +;

  printf("%d ",d); }

  A. 8, 4

  B. 9, 6

  C. 9, 4

  D. 8, 5

  21、表达式:10!=9的值是(D )。

  A. true

  B. 非零值

  C. 0

  D. 1

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

  A. i= *p;

  B. *p=*&j;

  C. i=&j;

  D. i=* *p;

  23、不能把字符串:Hello!赋给数组b的语句是( B)。

  A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};

  B. char b[10]; b="Hello!";

  C. char b[10]; strcpy(b,"Hello!");

  D.char b[10]="Hello!";

  24、在C程序中有如下语句:char *func(int x,int y); 它是(C )。

  A. 对函数func的定义。

  B. 对函数func的.调用。

  C.对函数func的原型说明。

  D. 不合法的。

  25、以下程序的输出结果是( D)。

  char str[15]=”hello!”;

  printf(“%d ”,strlen(str));

  A. 15

  B. 14

  C. 7

  D. 6

  26[单选题] 以下叙述中正确的是(  )

  A.用户自己定义的函数只能调用库函数

  B.实用的C语言源程序总是由一个或多个函数组成

  C.不同函数的形式参数不能使用相同名称的标识符

  D.在C语言的函数内部,可以定义局部嵌套函数

  参考答案:B

  参考解析:A选项中,”用户自己定义的函数只能调用库函数”描述是不正确的,也可以调用自定义函数;C选项中,对于不同函数的形式参数可以使用相同名称的标识符;D选项中,关于函数的定义不可以嵌套,但函数的调用可以嵌套。因此B选项正确。

  27[单选题] 以下关于C语言数据类型使用的叙述中错误的是( )。

  A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

  B.若要保存带有多位小数的数据,可使用双精度类型

  C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型

  D.整数类型表示的自然数是准确无误差的

  参考答案:C

  参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差的表示自然数。

  28[单选题] 下面选项中关于编译预处理的叙述正确的是

  A.预处理命令行必须使用分号结尾

  B.凡是以#号开头的行,都被称为编译预处理命令行

  C.预处理命令行不能出现在程序的最后一行

  D.预处理命令行的作用域是到最近的函数结束处

  参考答案:B

  参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行可以出现在程序的最后一行,预处理命令行作用域是整个文件。

  29[单选题] 有以下程序

  程序的输出结果是

  A.0B.1C.9D.10

  参考答案:B

  参考解析:本题考查宏定义,宏定义只是做个简单的替换。执行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的结果为1,选项B正确。

  30[单选题] 设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )。

  A.71B.70C.69D.不可能有这样的二叉树

  参考答案:D

  参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。如果有一棵二叉树,结点总数为l50,假设度为0的结点个数为n,则有n+10+n一1=150,n=70.5,由于结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。

  31[单选题] 有以下程序:

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

  A.2.3B.1,3C.1,4D.1,2

  参考答案:B

  参考解析:在f(int+P,int 4 q)函数中,执行P=P+1是将P所对应的地址加1,而0 q=+q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。

  32[单选题] 以下选项中,能用作用户标识符的是( )。

  A.-0-B.8-;8C.voidD.unsigned

  参考答案:A

  参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。8中以数字8开头,所以错误。c与D中用的是关键字void与unsigned,所以错误。

  33[单选题] 以下叙述正确的是( )。

  A.表达式sizeof(FILE*)==sizeof(int*)的值为真

  B.文件指针的值是一个整数,它的值一定小于文件字节数

  C.文件指针的值是所指文件的当前读取位置

  D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符

  参考答案:A

  参考解析:

  slzeof(FILE})=4,因为file·为指针,指针的大小4,sizeof(int·)=4,理由同前面。文件指针的值是地址,是一个16进制的数,它的值不一定小于文件字节数,因此选项8错误。文件指针是所指文件的当前读取位置,而不是文件指针的值因此选项C错误。mgscanf(FILE-stream,constchar}format,[argument…]fmanf函数可以向任意类型的文件,写入任意数量不能超过系统的缓冲区,写文件先写入缓冲区,最后一起写入文件,因此选项D错误。答案为A选项。

  C语言模拟试题练习2

  一、选择题(每小题1分,共40分)

  1、 以下函数实现按每行8个输出W所指数组中的数据:

  在横线处应填人的语句是( )。

  A.if(i/8==0)printf(” ”);

  B.if(i/8==O)continue;

  C.if(i%8==0)prinff(’’ ”);

  D.if(i%8==0)continue;

  2、 有以下程序:

  在VC 6.0平台上编译运行,程序运行后的输出结果是( )。

  A.10,6

  B.4,4

  C.2,4

  D.4。8

  3、 有以下函数:

  以下关于aaa函数功能叙述正确的是( )。

  A.将串s复制到串t

  B.比较两个串的大小

  C.求字符串s的长度

  D.求字符串s所占字节数

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

  5、 有以下程序:

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

  A.7

  B.10

  C.8

  D.9

  6、 有以下程序:

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

  A.1,1,2,0

  B.0,0,0,3

  C.编译有错

  D.0,1,2,0

  7、 已知字符‘A’的ASCII代码值是65,字符变量cl的值是‘A’,c2的值是‘D’。则执行语句printf(”%d,%d”,cl,c2—2);的输出结果是( )。

  A.65,68

  B.A,68

  C.A,B

  D.65,66

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

  A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

  B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

  C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

  D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

  9、 以下选项中正确的定义语句是( )。

  A.double,a,b;

  B.double a=b=7;

  C.double a;b;

  D.double a=7,b=7;

  10、 以下关于C语言数据类型使用的叙述中错误的是( )。

  A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

  B.若要保存带有多位小数的数据,可使用双精度类型

  C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型

  D.整数类型表示的自然数是准确无误差的 11、 下列关于栈的叙述正确的是( )。

  A.栈按“先进先出”组织数据,

  B.栈按“先进后出”组织数据

  C.只能在栈底插入数据

  D.不能删除数据

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

  A.c语言规定必须用main作为主函数名,程序将从此开始执行

  B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

  C.c语言程序将从源程序中第一个函数开始执行、

  D.main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等

  13、 有以下程序:

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

  A.let=4

  B.m=2

  C.m=6

  D.m=5

  14、 对于一个正常运行的C程序,以下叙述中正确的是( )。

  A.程序的执行总是从main函数开始,在程序的最后一个函数中结束

  B.程序的执行总是从程序的第一个函数开始,在main函数结束.

  C.程序的执行总是从main函数开始、

  D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

  15、 下列选项中属于面向对象设计方法主要特征的是( )。

  A.继承

  B.自顶向下

  C.模块化

  D.逐步求精

  16、 有以下程序:

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

  A.1,2,3,0,0,0,0,0,0,0,

  B.1,2,3,1,2,3,0,0,0,0,

  C.123,0,0,0,0,123,0,0,0,0,

  D.1,2,3,0,0,1,2,3,0,0,

  17、 有三个关系R、S和T如下:

  则由关系R和s得到关系T的操作是( )。

  A.自然连接

  B.并

  C.交

  D.差

  18、 有三个关系R、S和T如下:

  则由关系R和s得到关系T的操作是( )。

  A.自然连接

  B.交

  C.投影

  D.并

  19、 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。

  A.快速排序

  B.冒泡排序

  C.直接插入排序

  D.堆排序

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

  A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

  B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

  C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

  D.c语言中的文件是流式文件,因此只能顺序存取数据

  21、 有以下程序:

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

  A.4

  B.34

  C.31

  D.32

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

  A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

  B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

  C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

  D.以上说法都不正确

  23、 设文件指针fp已定义,执行语句fp=fopen(”61e”,”W”);后,以下针对文本文件file操作叙述的选项中正确的是( )。

  A.只能写不能读

  B.写操作结束后可以从头开始读

  C.可以在原有内容后追加写

  D.可以随意读和写

  24、 读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。

  A.一个内存块的字节数

  B.一个整型变量,代表待读取的数据的.字节数

  C.一个文件指针,指向待读取的文件

  D.一个内存块的首地址,代表读人数据存放的地址

  25、 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。

  A.函数的形参和实参分别占用不同的存储单元

  B.形参只是形式上的存在,不占用具体存储单元

  C.同名的实参和形参占同一存储单元

  D.函数的实参和其对应的形参共占同一存储单元

  26、 下列排序方法中,最坏情况下比较次数最少的是( )。

  A.冒泡排序

  B.简单选择排序

  C.直接插入排序

  D.堆排序

  27、 下列关于数据库设计的叙述中,正确的是( )。

  A.在需求分析阶段建立数据字典

  B.在概念设计阶段建立数据字典

  C.在逻辑设计阶段建立数据字典

  D.在物理设计阶段建立数据字典

  28、 有以下程序:

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

  A.y=OS)y=一1

  B.0

  C.y=1

  D.while构成无限循环

  29、 在黑盒测试方法中,设计测试用例的主要根据是( )。

  A.程序内部逻辑

  B.程序外部功能

  C.程序数据结构

  D.程序流程图

  30、 支持子程序调用的数据结构是( )。

  A.栈

  B.树

  C.队列

  D.二叉树 31、 有三个关系R、s和T如下:

  由关系R和s通过运算得到关系T,则所使用的运算为( )。

  A.并

  B.自然连接

  C.笛卡尔积

  D.交

  32、 以下选项中,能用作用户标识符的是( )。

  A.-0-

  B.8-;8

  C.void

  D.unsigned

  33、 若有定义语句:int X=10;,则表达式x-=x+x的值为( )。

  A.0

  B.-20

  C.-10

  D.10

  34、 有以下计算公式

  若程序前面已在命令行中包含文件,不能够正确计算上述公式的程序段是( )。

  35、 在c语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。

  A.auto和static

  B.extern和register

  C.auto和register

  D.static和register

  36、 有以下程序:

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

  A.55.

  B.50

  C.45

  D.60

  37、 下列函数的功能是( )。

  A.将a所指字符串赋给b所指空间

  B.使指针b指向a所指字符串

  C.将a所指字符串和b所指字符串进行比较

  D.检查a和b所指字符串中是否有‘、O’

  38、 下面描述中错误的是( )。

  A.系统总体结构图支持软件系统的详细设计

  B.软件设计是将软件需求转换为软件表示的过程

  C.数据结构与数据库设计是软件设计的任务之一

  D.PAD图是软件详细设计的表示工具

  39、 有以下程序:

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

  A.0

  B.9

  C.6

  D.8

  40、 有以下程序:

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

  A.500

  B.401

  C.503

  D.1404

  二、程序填空题(共18分)

  41、下列给定程序中,函数fun的功能是:将形参n中个位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。

  例如,输入一个整数27638496,函数返回值为64862。

  请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。

  不得增行或删行,也不得更改程序的结构!include

  unsigned long fun(unsigned long n){unsigned long x=0;int t;

  三、程序改错题(共24分)

  42、下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

  例如,若给a输入字符串:ABCDEFGKHHK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。请改正程序中的错误,使它能得出正确的结果。

  注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

  四、程序设计题(共18分)

  43、编写函数fun,其功能是:将所有大于1小于整数m的非素数存人XX所指数组中,非素数的个数通过k返回。

  例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。注意:部分源程序在文件PROGl.C中。

  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【C语言模拟试题练习】相关文章:

C语言练习试题11-06

2017年C语言考试题模拟练习11-04

C语言模拟试题及答案11-04

C语言考前模拟试题11-04

C语言模拟试题及答案11-01

C语言精选模拟练习题11-04

C语言练习测试试题10-08

C语言临考练习试题11-04

C语言考前练习试题及答案11-04