1、一、单项选择题(140=40分)1下面哪种方法不能用来描述算法:【】 A)自然语言 B) 流程图 C)数据结构 D)计算机语言编写的程序 2以下叙述中错误的是 【 】A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令3按照C语言规定的用户标识符命名规则,不能出现在标识符中的是【 】A)大写字母 B)连接符C)数字字符 D)下划线4以下不合法的用户标识符是 【 】A)j2_KEY
2、 B)double C)f4d D)_8_5以下叙述中错误的是 【 】A)C程序必须由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在C)若函数有返回值,必须通过return语句返回 D)函数形参的值也可以传回给对应的实参6对于一个正常运行的C程序,以下叙述中正确的是【 】 A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束7以下叙述中正确的是 【 】A)预处理命令行必须位于C
3、源程序的起始位置B)在C语言中,预处理命令行都以#开头C)每个C程序必须在开头包含预处理命令行:#includeD)C语言的预处理不能实现宏定义和条件编译的功能8以下叙述不正确的是 【 】 A)分号是C语言的必要组成部分 B)C程序的注释可以写在语句的后面 C)函数是C程序的基本单位 D)主函数的名字不一定用main表示9下列说法不正确的是【 】A) 定义变量必须要有数据类型B)任何变量必须先定义后使用C)所有的变量定义时系统并不分配相应的内存,而是在使用的时候才分配D) 常量可以赋值给一个变量10设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式执行后k值不相同的是【 】A)
4、k+ B)k+=1 C)+k D)k+111以下叙述中正确的是【 】A)break语句只能用于switch语句体中B) continue语句的作用是:使程序的执行流程跳出包含它的所有循环装订线.学院: 年级: 姓名: 学号: .密.封线.C) break 语句只能用在循环体内和switch语句体内D) 在循环体内使用break语句和continue语句的作用相同12在C语言中,函数返回值的类型最终取决于【 】A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型13已知大写字母A的ASCII码是65,小写字母a的
5、ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是【 】A) c=tolower(c) /* tolower( )是将大写字母转换为小写字母的函数 */B) c=c+32C) c=c-A+aD) c=(A+c)-a14下面结构体的定义语句中,错误的是:【 】A) struct student char name20; char sex; int age; struct student s1;B) struct student char name20; char sex; int age; struct student s1;C) struct student char n
6、ame20; char sex; int age; s1;D) struct char name20; char sex; int age; s1;15设有定义: char *p; 以下选项中能够使字符型指针p正确指向一个字符串的是:【 】A) char str =”China”; p=str0; B) scanf(“%s”, p);C) p=getchar(); D) p=”string”;16阅读以下程序#include void main() int case; float printF; printf(“请输入2个数:”); scanf(“%d%f”, &case, &printF);
7、 printf(“%d %f”, case, printF);该程序在编译时出现错误,其出错原因是:【 】A) 定义语句出错,case是关键字,不能用作用户自定义标识符B) 定义语句出错,printF不能用作用户自定义标识符C) 定义语句无错,scanf不能作为输入函数使用D) 定义语句无错,printf不能输出case的值17表达式3.6-52+1.2+52的值是 【 】A)4.3 B)4.8 C)3.3 D)3.818sacnf(“%s%d,%f”,s,&i,&f),要想s=“Cumtb”, i=30, f=5.0;下面哪种输入方式能使变量得到正确的结果:【 】 A) cumtb 30 5
8、 B) Cumtb 30 5.0 C) Cumtb 30,5 D) cumtb 30.0 5.019以下数组定义中错误的是 【 】A)int x3=0; B)int x23=l,2,3,4,5,6;C)int x3=l,2,3,4,5,6; D)int x23=l,2,3,4,5,6;20定义数组int a10,若整型类型变量长度是2个字节,数组a的首地址是0,则&a5的值是:【 】 A) 5 B) 10 C) 6 D) 1221要求通过while循环不断读入字符,当读入字母N时结束循环。以下正确的是 【 】A)while(ch=getchar()!=N) printf(%c,ch); B)w
9、hile(ch=getchar()!=N) printf(%c,ch);C)while(ch=getchar()=N) printf(c,ch);D)while(ch=getchar()=N) printf(c,ch);22若已定义x和y为double类型,则表达式x=1,y=x+32的值是 【 】 A) lB) 2C) 2.0D) 2.523若有说明语句:float *p,a;则能通过scanf语句正确给输入项读入数据的程序段是【 】A)*p=&a; scanf(f,&p); B)*p=&a; scanf(f,p);C)p=&a; scanf(f,*p); D)p=&a; scanf(f,p
10、);装订线.学院: 年级: 姓名: 学号: .密.封线.24若有以下语句,则对a数组元素的引用不正确的是(0i9)【 】int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A)ap-a B)*(&ai) C)pi D)*(*(a+i)25若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是【 】 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point26在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 【 】A)地址传递 B)单向值传递 C)由实
11、参传形参,再由形参传实参 D)传递方式由用户指定27设变量a是int型,f是float型,i是double型,则表达式10+a+i*f值的数据类型为 【 】A)int B)float C)double D)不确定28能正确表示逻辑关系:a10或a0的C语言表达式是 【 】A)a=10 or a=0 | a=10 & a=10a=029若变量a,i已正确定义,且i已正确赋值,合法的语句是 【 】A)a= =1; B)+i; C)a=a+=5; D)a=int(i);30设以下变量均为int类型,表达式的值不为7的是 【 】 A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)
12、C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)31若变量a是int类型,并执行了语句:a=A+1.6;,则正确的叙述是 【 】 A)a的值是字符C B)a的值是浮点型 C)不允许字符型和浮点型相加 D)a的值是字符A的ASCII值加上132执行语句 for(i=1;i+4;); 后变量 i 的值是 【 】A)3 B)4 C)5 D)不定33若变量c为char类型,能正确判断出c为小写字母的表达式是 【 】 A)a=c=a)|(c=z) C)(a=c) D)(c=a)&(c=z)34有以下程序main( ) int i,s=0; for(i=1;ib) c=a,
13、a=b, b=c; B) if(ab) c=a, a=b, b=c;C) if(ab) c=a; a=b; b=c; D) if(ab) c=a; a=b; b=c;二、写出程序运行结果。(每题3分,共30分)1有以下程序 fun(int x,int y,int z) z=x*y;main() int a=4,b=2,c=6;fun(a,b,c);printf(%d,c);2.执行下述程序时,若从键盘输入6和8时,输出结果为:main()int a,b,s;scanf(%d%d,&a,&b);s=a;if(ab)s=b;s*=s;printf(%d,s);3. main()float c,f;
14、scanf(“%f”, &f );c= 5/9*(f-32);printf(“摄氏温度为:%5.2fn”, c);若输入78,则运行结果为:4. main()int i, j, k;for(i=0; i=2; i+)for( j=0; j=2-i; j+)printf(“ ”);/*双引号中是一个空格*/for (k=0; k=2*i; k+)printf(“*”);printf(“n”);5有如下程序:main() int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(a=%d,b=%dn,a,b);6有以下程
15、序main()int i=1,j=1,k=2;if(j+ | k+)& i+)printf(%d,%d,%dn,i,j,k);7 main ()char b =Hello you;b5=0;printf (%sn,b);8. #include void main()int x=20;printf(%d,%dn, 0x20, 0x & x20);9.#include void main() int a=1,2,3,4,5; int y=0,x,*p; p=a; for(x=0;xb)?a:b后,temp的值是:【 】2. 设原来a=12;a*=2+3; 则 a=【 】3. 假设p指向一个数组,则
16、printf(“%d”, *p+)的作用是:【 】4struct data int i; char c; float f; n; 则结构变量n占用内存的字节数是 【 】5如果在程序中使用了getchar( )、putchar( )函数,则必须在文件的开头加入的命令【 】四、编程题(共20分)1求100-200中的全部素数。2从键盘输入20个整数,存储到一个整型一维数组a20中。要求: (1)编写一函数int find( int x, int b20)。实现给定x,找出该数x是数组b中第几个元素的值,并返回该元素的下标。如果该数不在数组中,则返回-1。(2)调用上述函数,实现给定x,将数组中值为x的元素的数值清零, 并说明x是数组b中第几个元素的值,并返回该元素的下标。如果x不在数组中,则返回-1。参考答案一1 - 5CDBBD6 -10ABDCD11-15CADBD16-20ADCBB21-25ACDDD26-30BCDBC31-35DCDDB36-40BBCAC二 1 62 643 0.004 * * *5 a=2,b=16 2,2,27 Hello8 1,09 610 5 3 3 5 9
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2