2009~2010学年第1学期c语言期末考试试卷
2009年C语言期末考试题(A卷)及答案
~ 4 ~
7. 下列程序的输出结果是 16.00,请填空_____________。 main() { int a=9, b=2; float x=【 】, y=1.1,z; z=a/2+b*x/y+1/2; printf("%5.2f\n", z ); } 8. 语句:x++; ++x; x=x+1; x=l+x; 执行后都使变量 x 中的值增加 1,请写出一条同一功能的 赋值语句(不得与列举的相同,也不得使用任何其它变量)_____________。 9. 若有定义:int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;,在不移动指针 p 条件下,通过 指针 p 引用值为 98 的数组元素的表达式是 _____________。 10. 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为 bi.dat 的新文 件中。请填空_________。 #include "stdio.h" FILE *fp; { char ch; if( (fp=fopen【 】)== NULL) while( (ch=getchar( )) !='@') fputc (ch,fp); fclose(fp); } exit(0);
)
~ 1 ~
8. 设有以下程序段: int a=5; while (a=0) a--; 则下面描述正确的是: ( ) A)执行 5 次循环体语句 B)本循环是死循环 C)一次也不执行循环体语句 D)执行一次循环体语句 9. 若以下选项中的变量已正确定义,则正确的赋值语句是( A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3; 10. 设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是( ) A)a++; B)b++ C)c++; D)d++; 11. 设有定义:float a=2,b=4,h=3;,以下 C 语言表达式与代数式计算结果不相符的是( A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b) 12. 有以下程序 main( ) { char k; int i; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( A) another B)another C)another D)number number number number number another number 13. 在调用 fopen 函数时,不需要的信息是( ) A)需要打开的文件名称 B)指定的文件指针 C)文件的使用方式 D)文件的大小 ) )
2010上学期C语言期末试卷选择题
1、下列叙述中,不正确的是( )。
A、一个C源程序必须有且只有一个主函数B、一个C源程序可以包含零个或若干个子函数C、在C源程序中,注释说明必须位于语句之后D、C源程序的基本结构是函数2、下列叙述中,不正确的是( )。
A. 分号是C语句的必要组成部分B. C语句的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定有main表示3、以下不是C语言的特点是( )。
A、C语言简洁紧凑B、C语言可以直接对硬件进行操作C、C语言的可移植性好D、C语言编程容易4、构成C语言的基本单位是( )。
A、过程B、函数C、子程序D、命令5、一个C程序的执行是从( ) 。
A、main函数开始,直到main函数结束B、main函数开始,直到最后一个函数结束C、从第一个函数开始,直到最后一个函数结束D、第一条语句开始,直到最后一条语句结束6、在C语言中,main函数的位置A、必须作为第一个函数B、必须作为最后一个函数C、可以任意D、必须放在它所调用的函数之后7、C程序是由( )构成的。
A、一个主程序与若干个子程序B、一个或多个函数C、若干过程D、若干子程序8、以下叙述不正确的是( )。
A.在C程序中,注释说明只能位于一条语句的后面B. 注释说明被计算机编译系统忽略C. 注释说明必须括在“/*”和“*/”之间,注释符必须配对使用D. 注释符“/”和“*”之间不能有空格9、下列符号串中,属于C语言合法标识符的是。
A. ex-1B. ifC. _cookD. 951a10、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是( )。
A、K%2B、K%2= =1C、(K%2)! =0D、!K%2= =111、对于一个完整的可运行的C源程序,下列哪一个说法是正确的?A、C语言程序总是从第一个定义的函数开始执行。
B、在C语言程序中,要调用的函数必须在main()函数中定义。
C语言期末考试题(含答案)
C语言期末考试题(含答案)《C语言程序设计》期末试卷一、单项选择题(10x2’=20’)1、以下叙述正确的是()A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C 语言中的函数不可以单独进行编译。
2、一个C语言的源程序中()A)必须有一个主函数B)可能有多个主函数C)必须有除主函数外其它函数D)可以没有主函数3、以下不能定义为用户标识符的是()A)scanfB)VoidC)_3comD)int4、若以下选项中的变量已正确定义,则正确的赋值语句是()A)x1=26.8%3;B)1+2=x2;C)x3=0x12;D)x4=1+2=3;15、设有定义:floata=2,b=4,h=3;以下C语言表达式中与代数式(a b)*h的计2算结果不相符的是().C)for、while、do-whileD)if、for、continue7.在while(!x)语句中的!x与下面条件表达式等价的是()A) x!=0B) x==1C)x!=1D)x==08、有以下程序:#include <XXX>void main(){int i=1,j=1,k=2;if( (j++||k++)&&i++ )printf(“%d,%d,%d\n”,i,j,k);}执行后的输出结果是()A)1,1,2B)2,2,1C)2,2,2D)2,2,39、有以下程序:#include <XXX>void main(){int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是()A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中奇数之和D)自然数1~10中偶数之和10、有以下函数定义:void fun(int n,double x){……}若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(int y,double m);B)k=fun(10,12.5);C)fun(x,n);D)void fun(n,x);2、填空题(10x2’=20’)11、C言语描绘“x和y都大于或等于z”的表达式是:。
2009级C语言程序设计试卷_A(带答案,自动化2009级)
天津工业大学200 9 ~201 0 学年第 1 学期高级语言程序设计(C语言)试卷(A)学院班级学号姓名注意事项:1、本试卷共11 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下标识符中,不能够作为变量名使用的是【1】。
A) float B) _123C) Sum D) X_Y12.一个C语言程序的执行是【2】。
A) 从第一个函数开始,到最后一个函数结束B) 从main()函数开始,到最后一个函数结束C) 从main()函数开始,到main()函数结束D) 从第一语句开始,到最后一个语句结束3.表达式sizeof(float)的值是【3】。
A) 1 B) 2 C) 4 D) 84.在C语言中,数值常量0x9f对应十进制值是【4】。
A) 160 B) 87C) 9f D) 1595.在C语言中,运算对象必须是整型数据的运算符是【5】。
A) / B) % C) && D) <=6.数学表达式x≥y≥z,改写为C语言表达式后,正确的写法是【6】。
A) x>=y>=z B) (x>=y) && (y>=z)C) (x>=y) & (y>=z) D) (x>=y) AND (y>=z)7.已知int x=6; 执行语句x+=x-=x*x; 后,变量x的值是【7】。
A) -60 B) -24 C) 36 D) 608.若int x=4,y=2;则表达式x<y?x++:y++的值是【8】。
A) 2 B) 3 C) 4 D) 59.若有定义语句char ch='\072'; 则变量ch 【9】。
c语言大一期末考试题库及详解答案
c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中的合法标识符?A. 3aB. intC. _aD. float答案:C2. C语言中,哪个关键字用于定义一个函数?A. ifB. whileC. functionD. void答案:D3. 在C语言中,以下哪个语句可以用于输入数据?A. scanf()B. printf()C. coutD. cin答案:A二、填空题1. 在C语言中,______关键字用于声明一个变量的存储类型。
答案:static2. 一个C语言程序的执行从______函数开始。
答案:main3. 在C语言中,______运算符用于计算两个数的乘积。
答案:*三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储相同数据类型的多个元素。
数组的定义格式为:类型名数组名[常量表达式];其中类型名是数组元素的数据类型,数组名是数组的标识符,常量表达式是数组的元素个数。
数组的初始化可以使用花括号{}将初始值包围起来,例如:int arr[5] = {1, 2, 3, 4, 5}。
2. 描述C语言中的指针和引用的区别。
答案:C语言中的指针是一个变量,它存储了另一个变量的内存地址。
指针可以被重新赋值为其他地址,并且可以进行算术运算。
引用在C语言中不存在,但在C++中,引用是别名,它为另一个已存在的变量提供了另一个名字。
引用一旦被初始化后,不能被重新赋值为其他变量的引用,也不能进行算术运算。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现对一个字符串进行反转。
(完整版)c语言期末考试题及其答案
(完整版)c语言期末考试题及其答案挑选题(7分,每小题0.5分)1.C语言源程序的基本单位是()。
A 过程B 函数C 子程序D 标识符2.下列程序的输出结果是()。
main( ){ int a=7,b=5;printf("%d\n",b=b/a);}A 5B 1C 0 D不确定值3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A 7B 8C 9D 24.设a为int型变量,执行下列赋值语句后,a的取值分离是()。
a=125.534; a=(int)125.521%4; a=5nB ++p->nC p->n++D (*p).n++写出下列程序的运行结果(10分,每小题2分)1.float average (float array[10]){ int i;float aver,sum=array[0];for (i=1;i=20) break;if(b%3==1){b+=3; continue; }b-=5;}printf(“a=%d\tb=%d\n”,a,b);}4.main(){ printf(“main( ) :%d\n”,fact(5)); fact(-5);}fact(int value){ int f;if(valuemax)max=array[i][j];(2) ;}main( ){ int a[3][4], i,j;for(i=0;ia[k]) k=j;if(k!=i){ t=a[k]; a[k]=a[i]; a[i]=t;}}printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); }答案一挑选题(7分,每小题0.5分)1. B2. C3. B4. B5. C6. A7. B8. A9. A 10. C11. A 12. A 13. B 14. D二推断对错,对的划“√”,错的划“×”(5分,每小题0.5分)1.×2.×3.√4.√5.×6.×7.×8.×9.√10.√四阅读下列程序,在处填入适当内容,使程序完整(8分,每个空1分)1.(1)int array[3][4](int array[][4]) (2)return(max)(3)scanf(“%d”,&a[i][j])2.(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)3.(7) (8)文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。
C语言期末考试卷及答案
二、判断题:(请在正确的叙述前打“√”,错误的打“×”,每题2分,共20分)()1.C语言中的变量必须先定义后使用。
()2.一个C程序的main函数,必须放在程序的所有函数的最前面,应为程序总是从它开始执行的。
()3.注释是多余的信息,会干扰计算机执行代码,因此程序里不要写注释。
()4.C语言中,大小写都是一样的,例如Main与main是一样的。
()5.C程序中的任何语句,包括空语句,都要用;结束。
()6.while语句和do-while语句都是实现循环的语句。
()7.在计算一个表达式的值的时候,要注意各个运算符的优先级和结合性。
()8.C程序的代码可以用word编辑并直接运行。
()9.表达式”a=b=c=5”的运算方向是从左向右。
()10.C语句也可以使用中文编写。
三、画程序流程图:(10分)根据下面的代码,画出相应的程序流程图。
#include <stdio.h>main(){int a,b,c,max;printf("Input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);if(a>b)max=a;elsemax=b;if(max<c)max=c;printf("max=%d\n",max);}四、程序分析(共25分)1.写出下列程序运行结果。
(10分)#include <stdio.h>main(){int a=10,b=8,c=6;printf("a=%d,b=%d,c=%d\n",a,b,c); c=a>b?a++:++b;printf("a=%d,b=%d,c=%d\n",a,b,c); }运行结果:2.写出下列程序运行结果。
(15分)#include <stdio.h>main(){int a[5]={0},i;for(i=0;i<3;i++){a[i]=i*2;}for(i=0;i<3;i++){printf("a[%d]=%d\n",i,a[i]);}}运行结果:五、编写程序(25分)1.编写程序:从键盘输入一个矩形的长和宽,求其面积(结果要求保留2位小数)。
2009年上学期《C语言程序设计》期末试卷(A)参考答案
2009年上学期《C语⾔程序设计》期末试卷(A)参考答案华东师范⼤学期末试卷(A)2008 —2009学年第⼆学期课程名称:C语⾔程序设计学⽣姓名:学号:______________专业:年级/班级 2007级课程性质:专业必修(请将所有答案写在答题纸上)⼀、填空题(每空1分,共10分)1. 设x和y均为int型变量,且x=2,y=3,则表达式1.0+x/y的值为 1.0。
2. 有如下输⼊语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输⼊数据的正确形式应是a=1,b=3,c=2 。
3. 变量y满⾜以下两条件中的任意⼀个:①能被4整除,但不能被100整除;②能被400整除。
请⽤逻辑表达式表⽰所给条件:___(y%4==0&&y%100!=0)||(y%400==0)_ __4. 在内存中存储“A”要占⽤ 2 个字节,存储…A?要占⽤ 1 个字节。
5. C语⾔编译系统在判断⼀个量是否为“真”时,以0代表“假”,以⾮0代表“真”。
6. 结构化程序设计⽅法规定程序或程序段的结构有三种:顺序结构、选择结构和循环结构。
7. 设有“int x=1;”,则“x>0 ? 2*x+1 : 0”表达式的值是___3_______。
8. C语⾔的表达式与语句的区别在于C语⾔的语句是以分号结束的,⽽表达式是没有分号的。
⼆、选择题(每⼩题1分,共20分)1. 以下关于C程序执⾏叙述正确的是( A)A)程序的执⾏总是从main函数开始,在main函数结束B)程序的执⾏总是从程序的第⼀个函数开始,在main函数结束C)程序的执⾏总是从main函数开始,在程序的最后⼀个函数中结束A)计算机不能直接执⾏⽤C语⾔编写的源程序B)C程序经C编译程序编译后,⽣成后缀为.obj的⽂件是⼀个⼆进制⽂件C)后缀为.obj的⽂件,经连接程序⽣成后缀为.exe的⽂件是⼀个⼆进制⽂件D)后缀为.obj和.exe的⼆进制⽂件都可以直接运⾏3. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A )A)k++ B) k+=1 C) ++k D) k+14. 若⽤数组名作为函数调⽤时的实参,则实际上传递给形参的是(A)。
2009-2010年第一学期《C程序设计》试卷B(08级09.11)含答案
一、单项选择题(2’×25=50分)1.下列选项中,可以作为用户标识符的是【】A) void B) 8_8 C) _0_0_a D) break2.【】是C语言提供的合法的数据类型关键字。
A) FloatB) unsignedC) integerD) Char3.字符串"\\\"ABC\"\\"的长度是:【】。
(最外边的双引号为字符串的定界符,不是字符串的内容。
)A) 11B) 7C) 5D) 34.用数组名作为函数调用时的实参,实际上传递给形参的是【】。
A) 数组全部元素的值B) 数组首地址C) 数组第一个元素的值D) 数组元素的个数5.执行下面程序段后,s的值是:【】int s=5;switch(++s){ case 6:case 7: s+=2;case 8:case 9: s+=2;}A) 10B) 7C) 8D) 6126. 已定义 char str[10]; 使得str 的内容为"Happy"的正确输入语句是【 】。
A) scanf ("%s",&str); B) scanf ("%s", str); C) scanf ("%c", str); D) scanf ("%c", &str); 7.下面不正确的说法是【 】。
A) 可以对字符型数组进行整体输入和输出。
B) 不可以对整型数组进行整体输入和输出。
C) 字符型数组可以存放字符串。
D) 可以对任意数组进行整体输入和输出。
8.下面合法的语句定义是 【 】 。
A) int a[ ]="string"; B) int a[5]={0,1,2,3,4,5}; C) char a[ ]={0,1,2,3,4,5}; D) char a="string"; 9.设int x=1,y=1;表达式(!x||y--)的值是【 】 A )0 B )1 C )2 D )-1 10.定义如下变量和数组: int k; int a [3][3]={9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是【 】 for (k=0;k<3;k++)printf ("%d",a [k ][k ]); A )7 5 3 B )9 5 1 C )9 6 3 D )7 4 1 11.下面说明不正确的是【 】 A )char a [10]="china"; B )char a [10],*p=a;p="china"; C )char *a;a="china"; D )char a [10],*p;p=a="china"; 12. 在C 程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。
华东理工大学c语言 (1)
华东理工大学2009 - 2010 学年第 1 学期 c程序设计试卷( )题号一二三四五六七八九总分得分1. 有下列程序#include <stdio.h>main(){union{int k;char i[2];}*s,a;s=&a;s->i[0]=0x39;s->i[1]=0x38;printf("%x\n",s->k);}输出结果是A)3839 B)3938 C)380039 D)3900382. 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A)100<空格>765.12<回车> B)i=100,f=765.12<回车>C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车>3. 设已有定义: char *st="how are you"; 下列程序段中正确的是A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11]; strcpy(a, st);D) char a[], *p; strcpy(p=&a[1],st+2);4. 设j为int型变量,则下面for循环语句的执行结果是for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf("%d",j);}A)6 3 B)7 4 C)6 2 D)7 35. 以下程序的输出结果是main(){int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k=p[i]*2;printf("%d\n",k);}A)20 B)21 C)22 D)236. 若有以下说明:int w[3][4]o={{0,1},{2,4},{5,8}};int(*p)[4]=w;则数值为4的表达式是A) *w[1]+1 B) p++,*(p+1)C) w[2][2] D) p[1][1]17. 若k是int型变量,且有下面的程序片段:k=-3if(k<=0) printf("####")else printf("&&&&");上面程序片段的输出结果是A) #### B) &&&& C) ####&&&& D) 有语法错误,无输出结果8. 以下程序运行后,输出结果是main( ){int y=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y\2;} while(y>1=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n")}A)10000 B)10010 C)00110 D)101009. 以下叙述中不正确的是A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量10. 请读程序:#include<stdio.h>func( int a, int b){ int c;c=a+b; return c;}main(){ int x=6, y=7, z=8, r;r=func( x--,y==,x+y),z--);printf("%d\n",r);}上面程序的输出结果是A) 11 B) 20 C) 21 D) 3111. 以下程序的输出结果是# include <stdio.h>main(){ int a=2,c=5;printf("a=%%d,b=%%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d12. 设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为A) 4 B) 3C) 2 D) 113. 执行以下程序后,y的值是main ( ){ int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x<3;x++) y + = * (p + x);printf("%d\n",y); }A) 17 B) 18 C) 19 D) 2014. 下面四个选项中,全是不合法的用户标识符的是:A、A P_0 doB、float la0 _AC、b-a goto intD、_123 temp INT15. 以下程序的输出结果是2main( ){ int n=4;while(n--)printf("%d ",--n);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 016. 设有如下的变量定义:int i=8,k,a,b;unsinged long w=5double x=1,42,y=5.2则以下符合C语言语法的表达式是A)a+=a-=(b=4)*(a=3) B)x%(-3); C)a=a*3=2 D)y=float(i)17. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是main( ){ int x;scanf("%d",&x);if(x + + >5) printf("%d",x);else printf("%d\n",x - -); }A) 7和5 B) 6和3 C) 7和4 D) 6和418. 若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为A)float B)int C)char D)double19. 设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是A) *((*prt+1) [2]) B) *(*(p+5))C) (*prt+1)+2 D) *(*(a+1)+2)20. 给出以下定义:char x[]="abcdefg";char y[]={'a','b','c','d','e','f','g'};则正确的叙述为A)数组X和数组Y等价B)数组x和数组Y的长度相同C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度二、填空题(每空1分,共10分。
南京信息工程大学2009-2010(1)C语言期末考试试卷A(后附答案)
南京信息工程大学试卷2009 - 2010 学年第 1学期程序设计基础/C语言程序设计课程试卷( A 卷) 本试卷共 9 页;考试时间 120分钟;任课教师;出卷时间 2010 年 1月学院专业2009 年级班学号姓名得分一、单项选择题 (每小题 1分,共 12分)1.一个C程序的执行是从A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2.下面四个选项中,均是不合法的用户标识符的选项的是A. A p_o doB. float lao _AC. b-a while intD. _123 temp INT3.表达式18/4*sqrt(4.0)/8值的数据类型为A.floatB. charC.doubleD.不确定4.设有如下定义struct ss{ char name[10];int age;char sex;}std[3],*p=std;下面各输入语句中错误的是。
A.scanf("%d",&(*p).age); B.scanf("%s",&);C.scanf("%c",&std[0].sex); D.scanf("%c",&(p->sex));5.有如下定义:int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4];下面表示正确的是A.p=a[0]; B.p=*a;C.p=&a[0][0]; D.p=a;6.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。
A.(x>=1) && (x<=10) && (x>=200) && (x<=210)B.(x>=1) | | (x<=10) | | (x>=200) | | (x<=210)C.(x>=1) && (x<=10) | | (x>=200) && (x<=210)D.(x>=1) | | (x<=10) && (x>=200) | | (x<=210)7.以下程序段的循环次数是。
C语言考试试卷
5
D)10 (29)下面能正确进行 字符串赋值操作的是 A)char s[5] ={"ABCDE"}; B)char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′}; C)char *s;s="ABCDE"; D)char *s;char a; scanf( "%s",&s); (30)执行以下程序后 ,a,b 的值分别为 main() { int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=( *p1) /( *p2) +7; printf( "a=%d\ n",a); printf( "b=%d\ n",b); } A) -1,5 B)1,6 C)0,7 D)4,10 (31)设有数组定义: char array[] ="China"; 则数组 array 所占的空 间为 A)4 个字节 B)5 个字节 C)6 个字节 D)7 个字节 (32)若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对 a 数组元素不正确的引 用是 A)a[ p-a ] B)*( &a[i] ) C)p[i] D)a[10] (33)以下不正确的定义语句是 A)double x[5] ={2.0,4.0,6.0,8.0,10.0}; B)int y[5] ={0,1,3,5,7,9}; C)char c1[] ={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′ \x10′,′\xa′,′\x8′}; (34)若有以下程序 #include int a[]={2,4,6,8}; main()
C语言程序设计期末考试卷及答案
C 语言程序设计期末考试卷及答案一、单项选择题;从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内 每小题1分,共计30分;1.一个C 语言程序的执行是从 ;A 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B 本程序的main 函数开始,到main 函数结束C 本程序的main 函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序的main 函数结束 2.下列选项中不属于...C 语言关键字的是 ;Aswitch Bprintf Cdefault Dcase3.设有语句 int a = 4; ,则执行了语句 a += a -= a a; 后,变量a 的值是 ; A24B -24C4D164.已知int i;float d;,则正确的表达式是 ; Aint d Bintd%i Cintd%i Dintd%i5.已知int i,a;,执行语句i=a=39,a/5,a+11; 后,变量i 的值是 ; A5B16C27 D386.下列选项中合法的字符型常量是 ; A"a"B'\n'C"\n" Da7.下面程序的运行结果是 ;include <stdio.h> void main { int k = 15;printf"k = %d,k = %o,k = %x\n",k,k,k; }Ak = 15,k = 15,k = 15 Bk = 15,k = 17,k = 17 Ck = 15,k = 017,k = 0xf Dk = 15,k = 17,k = f8.已知a,b,c 为int 类型,执行语句:scanf"%d%d%d",&a,&b,&c;使得a 为10,b 为20,c 为30,以下不正确...的输入形式是 ; A10 B10 C10,20,30 D10 20 20 20 30 30 309.已知int x=1,y=2,z=3;,执行下列程序段后,输出的结果是 ; ifx>y z=x;x=y;y=z; printf"%d,%d,%d",x,y,z; A1,2,3B2,3,3C2,3,1D2,3,210.若变量c 为char 类型,能正确判断出c 为大写字母的表达式是 ; A'A'<=c<='Z' B'A'<=c||c<='Z' CA<=c&&c<=Z D'A'<=c&&c<='Z'11.有以下程序段:int k=0;whilek=1 k++;while 循环执行的次数是 ;------------------------------------------第----------------------------2----------------------------装---------------------------------------线---------------------------------------------班级 姓名 学号------------------------------------------第----------------------------1----------------------------装---------------------------------------线--------------------------------------------A无限次B有语法错,不能执行C一次也不执行D执行1次12.以下程序的输出结果是;void main{int x=1,a=0,b=0;switchx{ case 0:b++;case 1:a++;case 2:a++;b++; }printf"a=%d,b=%d",a,b;}Aa=1,b=0 Ba=1,b=1 Ca=2,b=1 Da=2,b=2 13.若有定义int i = 1;,执行语句while i < 10 i++; 后,i的值为 ; A9 B10 C11 D1214.有说明语句int a ={1,2,3,4,5};,则数组a包括了个元素;A10 B5 C6 D不确定15.以下程序段执行后,输出结果是 ;char str="abc\n\012\\\n";printf"%d",strlenstr;A5 B6 C7 D1316.若有以下定义:float t54;,能正确引用t数组元素的表达式是 ;At14 Bt50 Ct00 Dt0,017.执行下列程序段:int i,s = 0;int a 3 = {{1,2},{3,4},{5,6}};for i = 0;i < 3;i++s = s + aii;则s的值是 ;A5 B6 C12 D2118.下述对字符数组的描述中,错误..的是 ;A字符数组可以存放字符串B字符数组中的字符串可以整体输入输出C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较19.设有宏定义define Yx x+ 2 ,则下面程序段的运行结果是 ;int a = 2,b = 2,c = 1;printf"%d\n",a Y b + c ;A7 B8 C9 D1020.若用数组名作为函数调用的实参,传递给形参的是;A数组的长度B数组第一个元素的值C数组中全部元素的值D数组的首地址21.下面叙述中,不正确...的是 ;A在不同的函数中可以使用相同名字的变量B函数中的形式参数是局部变量C在一个函数内定义的变量只在本函数范围内有效D在一个函数内的复合语句中定义的变量在本函数范围内有效22.若在程序中定义了以下函数:float max float a ,float b{ return a>b a:b; }并将其放在主调函数之后,则在调用之前应该对该函数进行声明,以下选项中错误..的声明是 ;A float max float a,b ;B float max float ,float ;C float max float a ,float b ;D float max float x ,float y ;23.要使函数体内的某局部变量能保留函数前一次调用后的值,供下一次调用时继续使用,该变量的存储类型应是 ;A autoB externC staticD register24.类型相同的两个指针变量之间不能..进行的运算是 ;A+ B- C= D==25.若有说明语句:int i, x34 ;,则不能..将x11的值赋值给变量i的语句是 ;Ai = x + 1 + 1 ; Bi = x11;Ci = x + 1 ; Di = x1 + 1 ;26.有如下程序段:int a6 = { 1,2,3,4,5,6 };int m,ptr;ptr = &a0;m = ptr ptr + 2 ptr + 4 ;执行该程序段后,m的值为 ;A 15 B48 C24 D827.设有定义:enum team{ my,your=4,his,her = his+10};则枚举元素my、your、his、her的值分别是 ;A0 1 2 3 B0 4 0 10 C0 4 5 15 D1 4 5 1528.下面程序的运行结果是 ;union myun{ struct{ int x,y,z; }u;int k;}a;void main{ a.u.x = 4;a.u.y = 5;a.u.z = 6;a.k = 0;printf"%d\n",a.u.x;}A4 B0 C5 D629.表达式11 & 18的值是 ;A0 B1 C2 D27 30.当顺利执行了文件关闭操作后,fclose函数的返回值是 ;A 0 Btrue C -1 D 1二、填空题每小题2分,共计20分;1.C语言源程序编译后生成程序,然后经过连接生成可执行程序;2.实型常量有两种表示方法:小数形式和;3.rewind函数的功能是;4. 若ch是字符型变量,与ch=getchar;功能相同的语句是; 5.以下程序段要使指针变量p指向一个整型的动态存储单元,请填空;int p;p= mallocsizeofint;6.已知:int p,a = 2,b = 1;,则执行程序段p = &a;a = p + b; 后,a的值为; 7.已知:int x = 1, y = 2, z;,则执行z = x > y ++x : ++y;后,z的值为; 8.当执行下面程序且输入:ABC<回车>时,输出的结果是 ;include <stdio.h>void main{ char ss10 ="12345";getsss;printf“%s\n”,ss;}9.下面程序的功能是用函数的递归调用求nn≥1,请填空;float fint n{ if n==1 return1;else return ;}void main{ int n;scanf"%d",&n;printf"%.0f\n",fn;}10.以下程序执行后的输出结果是 ;void main{ int a = 3,b = 1,t;t = a << 2 | b;printf"%d\n",t ;}三、程序阅读题每小题4分,共计20分;1.以下程序执行后的输出结果是;include <stdio.h>void main{ int i;for i = 1;i <5;i++putchar‘’;}2. 以下程序执行后的输出结果是;void main{ int arr10={-1,2,3,4,-5,6,7,-8,9,0},i,k = 0;for i = 0;i <10;i ++ifarri<0 k++;printf"%d\n",k ;}3.以下程序执行后的输出结果是;void funint a10{int i,j,t;for i=0;i<9;i++for j=0;j<9-i;j++if aj>aj+1{t=aj;aj=aj+1;aj+1=t; }}void main{int i;int a10={4,3,5,1,0,8,2,6,7,9};funa;for i=0;i<10;i++printf"%3d",ai;printf"\n";}4.以下程序执行后的输出结果是;include <stdio.h>struct stu{ int x;int y;}p;int a2 = {10,20};struct stu aa2 = { 150,&a0,250,&a1};void main{ p = aa;printf"%d\n",++p-> x ; } 5.以下程序执行后的输出结果是;void swap int p1 ,int p2{ int k;k = p1;p1 = p2;p2 = k;}void main{ int a = 3,b = 6,x = &a,y = &b;swap x,y ;printf"%d,%d\n",x,y ;}四、程序改错题共2小题,每正确修改一处错误得2分,共计10分;注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果;1.下列程序的功能是计算数列1,3,5,…,2n-1,…的前n项之和,其中n由键盘输入;void main{int s=0,n,i=1;scanf"%d",n; / 1该行有错误/do{ s=s+i;i=i+2; }while i>2n-1; / 2该行有错误/printf"s=%d\n",s;}2.下列给定的程序中,函数average的功能是:求10个数的平均值;include <stdio.h>float averagefloat array{ int i;float aver,sum; / 1该行有错误/for i=0;i<10;i++sum=arrayi; / 2该行有错误/ aver=sum/10;returnaver;}void main{ float data10,aver;int i;printf"Please input 10 data:\n";for i=0;i<10;i++scanf"%f",&datai;aver=averagedata0; / 3该行有错误/printf"averege data is %5.2f\n",aver;}五、程序设计题共3小题,第1小题6分,第2、3小题各7分,共20分;1.输入x,计算并输出下列分段函数y的值结果保留2位小数;2.在一个已排序的整型数组设从小到大中,插入一个整数,使之仍然有序要求数组中原有的10个整数从键盘按顺序输入;3.请先编写一个函数concatchar str1 ,char str2 ,实现两个字符串的连接注意不要用strcat函数;再编写一个main 函数进行测试:在主函数中输入两个字符串,然后调用concat函数,最后将连接后的字符串输出;参考答案一、单项选择题;从A、B、C、D四个选项中,选择一个最佳答案填入括号内每小题1分,共30分,错选、漏选、多选均不得分;⎪⎩⎪⎨⎧>-≤≤<=)15(5.105.2)150(34)0(xxxxxy二、填空题每小题2分,共20分,错填、漏填均不得分;三、程序阅读题每小题4分,共20分说明:对于程序阅读题,如果该题考生所给出的答案仅仅是书写格式上的错误,没有其它方面错误,扣1分,否则该题不得分;四、程序改错题共2小题,每正确修改一处错误得2分,共计10分; 注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果;1. 1scanf"%d",&n;2while i<=2n-1; 2.1float aver,sum=0;2sum=sum+arrayi; 或者改为sum+=arrayi; 、sum=sum+array+i; 、sum+= array+i;sum=sum+array+i;也正确3aver=averagedata; 或者改为aver=average&data0; 也正确五、程序设计题共3小题,第1小题6分,第2、3小题各7分,共20分评分总则:若考生给出的程序语法正确,符合要求,能够实现具体功能,即可得满分;若程序存在错误,不能得出正确结果,阅卷教师酌情给分,给分方法参考下列评分标准; 1源程序代码include <stdio.h> main{float x,y; …… 1 分 printf"input x:";scanf"%f",&x; …… 2 分ifx<0 y=0;else if x<=15 y=4x/3;else y=2.5x-10.5; …… 2 分printf"y=%.2f\n",y; …… 1 分}2源程序代码include "stdio.h"main{int a11,i,b;printf"imput 10 sorted integer number:\n";for i=0;i<10;i++scanf"%d",&ai; …… 2 分printf"input an integer:\n";scanf"%d",&b; …… 1 分for i=9;i>=0&&ai>b;i--ai+1=ai; …… 2 分ai+1=b; …… 1 分printf"sorted numbers:\n";for i=0;i<11;i++printf"%5d",ai; …… 1 分}3源程序代码include <stdio.h>include <string.h>void concatchar str1,char str2 …… 1 分{int i,j;j=strlenstr1; …… 1 分for i=0; str2i='\0'; i++{str1j=str2i;j++;} …… 1 分 str1j='\0'; …… 1 分} main{ char str120,str220;printf"input two string:\n";getsstr1;getsstr2; …… 1 分 concatstr1,str2; …… 1 分 putsstr1; …… 1 分}。
[理学]南京信息工程大学2009-1c语言期末考试试卷b
1.C源程序的基本单位是。
2.按照计算机科学家沃思(Wirth)的提法,一个计算机程序应包括数据结构和两部分。
3.数学表达式 的C语言表达式是。
4.若s是int型变量,s=6;则表达式s%2+(s+1)%2的值为
5.C语言本身不提供输入输出语句,其输入输出操作是由来实现的。
10.若用数组名作为函数调用的实参,传递给形参的是。
A)数组的首地址B)数组中第一个元素的值
C)数组中的全部元素的值D)数组元素的个数
11.设有程序段:char s[ ]=”china”; char *p ; p=s ;则下面叙述正确的是。
A)s和p完全相同
B)数组s中的内容和指针变量p中的内容相等
A)10 B)11 C)9 D)无限循环,值不定
7.引用数组元素时,其下标表达式的值类型一定是:
A) char B) int
C) double D) bool
8.若对两个数组a和b进行初始化
char a[]="ABCDEF";
char b[]={'A', 'B', 'C', 'D', 'E', 'F'};
int i=0,j=0,s=0;
while (i++<4)
{
if (i==2 || i== 4 ) continue ;
j=0;
do {
s+=a[i][j];
j++;
}while (j<4) ;
}
printf("%d\n" , s );
2009-2010C程序设计考试试题
2009-2010年C程序设计考试试题一.单项选择题:下面每题的选项中,只有一个是正确的,请将正确答案填在横线上。
(本题共15小题,每小题2分,共30分)1、在C语言中(以16位PC机为例),5种基本数据类型的存储长度的排列顺序为______。
A char<int<long int<=float <doubleB char=int <long int <=float <doubleC char < int<long int = float=doubleD char=int =long int <=float <double2、若有代数式,则正确的C语言表达式是______。
A sqrt (fabs (pow (y,x)+log (y)))B sqrt (abs (pow (y,x)+log (y)))C sqrt (fabs (pow (x,y)+log (y)))D sqrt (abs(pow (x,y)+log (y)))3、以下关于运算符优先顺序的描述正确的是______。
A 关系运算符<算术运算符<赋值运算符<逻辑运算符B逻辑运算符<关系运算符<算术运算符<赋值运算符C 赋值运算符<逻辑运算符<关系运算符<算术运算符D算术运算符<关系运算符<赋值运算符<逻辑运算符4、若w=1 ,x=2, y=3 ,z=4,则条件w < x ? x :y < z ? y :z表达式的值是______。
A 4B 3C 2D 15、C 语言中while 和 do-while 循环的主要区别是______。
A do?-while 的循环体至少无条件执行一次B while的循环控制条件比do-while的循环控制条件严格C do—while 允许从外部转到循环体内D do –while 的循环体不能是复合语句6、下程序段______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、阅读程序,写出以下各程序的输出结果(每题4分,共20分)
1. #include<stdio.h>
main( )
{ float i=-2.56, j=3.2567;
printf("i=%5.2f, j=%5.2f\n", i, j );
}
程序的运行结果:i=-2.56, j= 3.26
2. #include<stdio.h> (p104)
void fun( int *a, int *b, int x, int y)
{ *a=x+y; *b=x-y ; }
main( )
{ int c=8, d=4;
fun( &c, &d, 5,10);
printf(“%d %d\n”, c, d);
}
程序的运行结果:15 -5
3、#include<stdio.h> (P164,有改动)
int fun( int x )
{ int p;
if (x == 1 ) return 2;
p=x- fun ( x-2 ); //递归调用
return p;
}
main()
{ printf("%d\n", fun ( 9 ) );
}
程序的输出结果: 6 4、#include<stdio.h> (P48)
main()
{ int a=0,b=2,c=3;
switch(a)
{ case 0: switch(b==2)
{ case 1: printf("*");break;
case 2: printf("%");break;
}
case 1: switch(c)
{ case 1: printf("$"); break;
case 2: printf("&"); break;
default: printf("#");
}
}
printf("\n");
}
程序的运行结果: *#
5、#include<stdio.h> (P63)
main( )
{ int i,j,m=0;
for(i=1;i<=15;i+=4)
for(j=2;j<=20;j+=5)
m++;
printf("%d\n",m);
}
执行后的输出结果是: 16
六.按以下要求编写程序 ( 共10分)
1)任意输入10个实型数,求这10个数的平均值并输出小于平均值的那些数。
2)任意输入一个字符串,统计并输出该字符串中英文大写字母的个数。