当前位置:文档之家› C语言程序设计模拟试题1

C语言程序设计模拟试题1

C语言程序设计模拟试题.一、填空题.1. C语言程序的三种基本结构是顺序结构,选择结构,循环结构。

2.if语句控制表达式只有其值为非0表示逻辑值“真”,其值为0表示逻辑值“假”。

3.说明语句:int b[10]; 定义了数组b有10个整型元素,这些数组元素的下标是从0开始,最大为9。

4. 有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]=0,a[2][1]=6.5. 设x,y,z均为int 型变量,C语言描述”x或y中有一个小于z”的表达式是x<z‖y<z。

6. 若for循环用以下形式表示:for(表达式1;表达式2;表达式3) 循环体语句则执行语句for(i=0;i<3;i++) printf(“*”);时,表达式1执行1次,表达式3执行3次。

7.说明语句:int a,*p; 定义了一个整型变量a和一个指针变量p,使指针变量p指向整型变量a的语句是:p=&a,此时*p与变量a等价。

8. 在C语言中,十进制数30的八进制表示形式是036 ,十六进制表示形式是0x1e9. C程序是由函数组成的。

一个C程序由一个main()函数和若干个子函数构成。

函数的构成可分为两部分:函数说明(或函数头) 和函数体。

10.标识符是指程序中的符号常量、变量、函数等对象的名称。

在C语言中,标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。

11.在C语言中整型常量有十进制、八进制和十进制三种表示方法。

实型常量有小数形式和指数两种表示方法。

12.C语言中语句的作用是向计算机系统发出操作命令,从而完成一定的操作任务。

C语句可以分为:表达式语句、函数调用语句、控制语句、复合语句和空语句等五种类型。

二、单项选择题)1.一个C语言的执行是从 A(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始, 到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束2.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 C(A) 必须为字母 (B) 必须为下划线(C) 必须为字母或下划线 (D) 可以是字母,数字和下划线中的任一种字符3. 以下选项中属于C语言的数据类型是 DA)复数型 B)逻辑型 C)集合型 D)双精度型4.以下叙述正确的是 C(A) 在C程序中,main函数必须位于程序的最前面(B) C程序的每行中只能写一条语句(C) C语言本身没有输入输出语句(D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误5. 下列可以正确表示字符型常量的是 BA) "a" B) 't' C) "\n"6.下列形式的常数中,C程序不允许出现的是 A 。

(A)±123 (B) .45 (C) 25.6e-2(D) 4e37.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 B(A) 7 (B) 8 (C) 6 (D) 28.以下叙述不正确的是D(A)在C程序中,逗号运算符的优先级最低(B)在C程序中,APH和aph是两个不同的变量(C)若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变(D)在C程序中,无论是整数还是实数,都能被准确无误地表示9.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D(A) float (B) char (C) int (D)double10.已知int i,a;执行语句i=(a=2*3,a*5),a+6; 后,变量i的值是 CA) 6 B) 12 C) 3011.在C语言中,要求运算数必须是整型的运算符是 B(A) / (B) % (C) != (D)++12.若变量已说明为int型,要给a,b,c输入数据,以下正确的输入语句是 DA) scanf("%d%d%d",&a;&b;&c); B) scanf("%d%d%d",a,b,c);C) scanf("%D%D%D",&a,&b,&c) D) scanf("%d%d%d",&a,&b,&c);13.以下关于运算符优先顺序的描述中正确的是 C(A)关系运算符<算术运算符<赋值运算符<逻辑运算符(B)逻辑运算符<关系运算符<算术运算符<赋值运算符(C)赋值运算符<逻辑运算符<关系运算符<算术运算符(D)算术运算符<关系运算符<赋值运算符<逻辑运算符14.设 x=3,y=2,则表达式x*=y+8的值为 C(A) 3 (B) 2 (C) 30 (D)1015.对for(表达式1; ;表达式3)可理解为 BA) for(表达式1;0;表达式3)B) for(表达式1;1;表达式3)C) for(表达式1;表达式1;表达式3)D) for(表达式1;表达式3;表达式316.有数组定义:char array[]="China"; 则数组array 所占用的内存空间为 AA) 6B B) 5B C) 11B D) 10B17. C语言规定,简单变量作实参时,它和对应形参之间的数据传递是 BA) 地址传递 B) 单向值传递C) 由实参传递给形参,再由形参传回实参 D) 由用户指定传递方式18. 如下程序段执行后的输出结果是c#include <stdio.h>void main(){ struct abc{int x;int y;} num[2]={{20,5},{6,7}};printf("%d\n",num[0].x/num[0].y*num[1].y) ; }A) 0 B) 20 C) 28 D) 2419.为表示关系: X≥Y≥Z,应使用的C语言表达式是 A(A) (X>=Y)&&(Y>=Z) (B)(X>=Y)AND(Y>=Z)(C) (X>=Y>=Z) (D)(X>=Y)&(Y>=Z)20.下列程序运行结果是 C#include <stdio.h>void main(){ int tt(int);int i,a[0]={3,2,6,9,10,11,8,13,4,5};for(i=0;i<10;i++)if(tt(a[i]==1) printf("%d ",a[i]);}int tt(int y){ int z=0;if(y%2==1) z=1;return z;}(A)2 6 10 8 4 (B)3 2 6 9 10 11 8 13 4 5(C)3 9 11 13 5 (D) 3 11 13 521.以下不正确的语句为 B(A) if(x>y);(B) if(x=y)&&(x!=0) x+=y;(C) if(x!=y) scanf(“%d”,&x);elsescanf(“%d”,&y);(D) if(x<y) {x++;y++;}22.下面程序段的运行结果是 Aint a=1,b=2,c=2,t;while(a<b<c) {t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);( A) 1,2,0 (B) 2,1,0 (C) 1,2,1(D) 2,1,123.以下能正确计算1*2*3*4*5*6*7*8*9*10的程序段是C(A) do{ i=1;s=1; (B)do{ i=1;s=0;s=s*i;s=s*i;i++;i++;}while(i<=10);} }while(i<=10);(C) i=1;s=1; (D)i=1;s=0;do{ s=s*i;do{ s=s*i;i++;i++;}while(i<=10); }while(i<=10);24.若用数组名作函数调用的实参,传递给形参的是 A(A) 数组的首地址 (B) 数组第一个元素的值(C) 数组中全部元素的值 (D) 数组元素的个数25.以下不正确的说法为 D(A) 在不同函数中可以使用相同名字的变量。

(B) 形式参数是局部变量(C) 在函数内定义的变量只在本函数范围内有效(D) 在函数内的复合语句中定义的变量在本函数范围内有效26. 下列程序的运行结果是: A#include <stdio.h>void main(){ int x=1,a=0,b=0;switch(x){case 0:b++;break;case 1:a++;break;case 2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}(A) a=1,b=0 (B) a=2,b=0(C) a=1,b=1 (D)a=2 ,b=127.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 D(A ) extern (B)register (C)auto(D) static28.C语言规定,函数返回值的类型是由 C(A) return语句中的表达式类型所决定(B) 调用该函数时的主调函数类型所决定(C) 在定义该函数时所指定的函数类型所决定(D) 调用该函数时系统临时决定29.运行下面程序,从键盘输入:1 2 3 4 5 -1<回车>,运行结果:B#include <stdio.h>void main(){ int n,k=0;do{scanf("%d",&n);k+=n;}while(n!=-1);printf("k=%d,n=%d\n",k,n);}(A)k=15,n=-1 (B) k=14,n=-1(C)k=15,n=5 (D)k=14,n=5下列程序的运行结果是:30. 变量的指针,其含义是指该变量的 B(A) 值 (B) 地址 (C) 名 (D)一个标志31. 下列程序的运行结果是:A#include <stdio.h>void main(){ int i=1,j,k;j=i++;printf("j=%d,i=%d\n",j,i);k=++i;printf("k=%d,i=%d\n",k,i);}(A ) j=1,i=2 k=3,i=3 (B) j=2,i=2 k=3,i=3 (C) j=1,i=1 k=3,i=3 (D) j=1,i=2 k=3,i=2三、程序设计题1、求1-100中含5的所有数之和#include <stdio.h>int Is1(int i){while(i){if(i%10==5)return i;i/=10;}return 0;}void main(){int i,sum=0;for(i=1;i<=100;i++)if(Is1(i)){printf("%d,",i);sum+=i;}printf("\n%d\n",sum);}2.编程:1+2+3+…+100#include "stdio.h"void main(){ int n=1,sum=0;while(n<=100){ sum+=n;n++;}printf("Sum=%d\n",sum);}3、编写一个程序以实现以下功能:子函数fun计算:m=1-2+3-4+5-6+7-8+9-10主函数中调用子函数并输出结果。

相关主题