2011年中南大学C语言期末试题卷A

合集下载

中南大学考试试题(C语言)10级程序设计试题(修改)

中南大学考试试题(C语言)10级程序设计试题(修改)

中南大学考试试卷2010 -- 2011学年2 学期期末考试试题A卷时间110分钟C语言程序设计基础课程48学时3学分考试形式:闭卷专业年级:2010级总分100分,占总评成绩70 % 注:此页不作答题纸,请将答案写在答题纸上一填空题(每空2分,共30分)1.若int x = 2,y = 7,z = 6;则表达式:x= = ( y = z );执行完后,x的值是;y的值是。

2.若int a,b = 9,d = 8;表达式:a =(――b= = d+ +)? d++ : ――b;则a的结果是;表达式执行完后d的值为。

3.已有宏定义#define P(x) x*x-2设int x = 1,y = 3;且a = P(2+x);b = P(y);则a的值为;b的值为。

4.若int x = 4,y = 6,z = 0;有循环while(x = y) {z ++;y--;}则循环语句执行完后,z值为。

5.若有定义:char str1[ ]={…C‟, …h‟, …i‟, …n‟, …a‟};char str2[ ]=“China”;则数组str1的长度为;数组str2的长度为。

6.已知有定义:int a = 1,b = 2,c = 3,d = 4,m = 1,n =1,k;则语句:k = (m = a > b) && (n = c > d);运行完毕后,m的值为;n的值为;k的值为。

7.已有定义:char *p[]={“Chinese”,“France”,“America”,“Russia”};则语句printf(“%s”, p[1]);printf(“%c”, p[1][2]);printf(“%c”, *(p[3]+1));的输出结果分别为:、、。

二判断题(每小题1分,共10分)1、标准C中,并不区分英文字符的大小写。

2、标准C中,变量可以先使用再定义。

3、若定义函数时,其返回类型为void,则调用函数时,不能将其作为一个值赋给某个变量。

(word版)C语言程序设计期末考试卷及答案.doc,文档

(word版)C语言程序设计期末考试卷及答案.doc,文档

(word 版)C 语言程序设计期末考试卷及答案.doc,文档1 / 91装 装 .--C 语言程序设计期末考试卷及答案- -- -- -- - --- -- - - - - - --- - 得分 阅卷人 复核人 --- -- -- - - - - -- ---- -A 、B 、C 、D 四个选项中,选择一个最正确答案填入括号内 (每题 1分,共计 30分)。

- -一、单项选择题。

从- -- -- -- -〕。

- -1.一个C 语言程序的执行是从〔- -2 1 - -- 号 - A 〕本程序文件的第一个函数开始,到本程序文件的最后一个函数结束-- - - -- 学 -- - -- - - B 〕本程序的main 函数开始,到main 函数结束- - -- - -- - -- - -- - - C 〕本程序的main 函数开始,到本程序文件的最后一个函数结束- - -- - -- - - - -- D 〕本程序文件的第一个函数开始,到本程序的main 函数结束- --- - -- - -- - -C 语言关键字的是〔 〕。

- - -2.以下选项中不属于- - - ...- --- ---- -- A 〕switch B 〕printf C〕default D 〕case- --- - -- -3.设有语句inta=4; ,那么执行了语句a+=a-=a*a; 后,变量a 的值是〔 〕。

-- --名A 〕24B 〕-24C 〕4D 〕16-- -姓第 第 --- 4.inti;floatd; ,那么正确的表达式是〔 〕。

--- --A 〕(intd)B 〕int(d)%i C 〕(int)d%iD 〕int(d%i) -- -- -,执行语句i=(a=3*9,a/5),a+11; 后,变量i 的值是〔 - 线 -5.inti,a;〕。

- - - - -- - - - --- - -A 〕5B 〕16C 〕27D 〕38 - - - - - - - - -- - - 〕。

中南大学C++期末考试试卷

中南大学C++期末考试试卷

x=y
; y=t
;。
6.在 C++ 中,有两种给出注释的方法。一种是沿用 C 语言的注释符,即 /* */ 。
另一种是从它开始,直到它所在行尾的字符都为注释的注释符,即 //

7.在 C++ 中, 函数在定义时可以预先定义出默认的形参值。默认形参值必须
按 从右到左 的顺序定义。因为在调用时,实参初始化形参是按 从左到右
abcdefg cdefg
//加号向右从第 n 位输出
第 3 页 共 6页
2.源程序如下:
# include <iostream.h>
# define N 5
*********
void main( )
*******
{
*****
int i , j ;
***
for( i = N; i >= 1 ; i-- )
律是:数列前两项均为 1,从第三项开始,每一项都是其前两项的和。请补全
fac 函数。
# include <iostream.h>
int fac( int n ) ;
void main( )
{
int i ;
for( i = 0 ; i < 20 ; i + + )
cout << fac( i ) << ″ ″;
} Class :: ~Class( ) {
cout <<“Destruct : x=” << x <<“, y= ” << y << endl ;
}
第 5 页 共 6页
void main( ) {

中南大学C语言历年试卷

中南大学C语言历年试卷

[6] );
if(isprime(*(p+i)) ) sum+=*(p+i)
}
printf(“sum=%d”,sum);
}
int isprime(int x)
{ int i,f=1;
for(i=2;i<=sqrt(x);i + + )
if(x%i = = 0) {f=0;break;}
[7]
;
}
3. 以下程序调用 invert 函数按逆序重新放置 a 数组中元素的值。a 数组中的值在 main
if (*(p1+k)= =*(p2+k))
printf("%c",*(p1+k));
}
四. 阅读程序,根据提示信息完善程序,每个空只能填写一条语句或一个表达式(每空
3 分,共 30 分)
1. 以下程序求数组中值最大的元素在数组中的下标。
# include <stdio.h>
void main()
{ int a[10] , i , num = [1]
void main()
{ char *chp ;
for (chp =b;*chp ;chp +=2) printf("%s",chp);
printf("\n");
}
10. 以下程序运行后,输出结果是 [10]
void main( )
{ char *s="abcde";
s+=2;
print("%s \n",s);
函数中读入。
#include <stdio.h>

大学c语言期末考试题及答案

大学c语言期末考试题及答案

大学c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的执行方式是编译执行C. C语言支持面向对象编程D. C语言具有丰富的库函数答案:C2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的下标从1开始C. 数组可以存储不同类型的数据D. 数组的大小在定义后不能改变答案:D4. 在C语言中,用于文件操作的库函数是:A. printfC. fopenD. getchar答案:C5. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以被赋值为NULLD. 指针可以存储函数的地址答案:D6. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:B7. 下列关于循环的描述中,错误的是:A. for循环可以嵌套使用B. while循环可以和break语句一起使用C. do-while循环至少执行一次D. 循环体内不能使用continue语句答案:D8. 在C语言中,用于定义一个宏的预处理命令是:B. #includeC. #pragmaD. #import答案:A9. 下列关于函数的描述中,错误的是:A. 函数可以有返回值B. 函数可以没有参数C. 函数可以没有返回值D. 函数可以没有定义答案:D10. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是____。

答案:int2. 在C语言中,表示逻辑与运算的运算符是____。

答案:&&3. 当需要在C语言中表示一个常量时,可以使用关键字____。

c语言考题及答案(可编辑修改word版)

c语言考题及答案(可编辑修改word版)

2011-2012 第二学期C 语言期末试卷一、选择题:(每小题1分,共20分)1、一个C程序的执行是从( A )。

A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。

A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、以下选项中,( D )是不正确的 C 语言字符型常量。

A. 'a'B. '\x41'C. '\101'D. "a"5、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。

x=(i=4,j=16,k=32)A. 4B. 16C.32D.526、在以下一组运算符中,优先级最低的运算符是( D )。

A. *B. !=C. +D. =7、了避免嵌套的if-else语句的二义性,C语言规定else总是与( C )组成配对关系。

A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前尚未配对的最近的ifD. 同一行上的if8、为表示关系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)9、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )A.read(a,b,c)B.scanf(“%d%d%d”,a,b,c);C.scnaf(“%D%D%D”,&a,&b,&C);D.scanf(“%d%d%d”, &a,&b,&c);10、执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是( C )A.1 2B.1 2C.1,2D.1211、main(){ int i = 10, j = 1;printf("%d,%d\n",i- -, ++j);}执行后输出结果是( B )A. 9,2B. 10,2C. 9,1D. 10,112、C语言中while和do-while循环的主要区别是( A )A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句13、下面有关for循环的正确描述是( D )A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来14、以下正确的描述是( B )A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句15、以下对C语言函数的有关描述中,正确的是( A )。

中南大学C 语言程序设计试卷

中南大学C 语言程序设计试卷

C 语言程序设计试卷一、单项选择题(每题1分,共20分)1. C语言规定:在一个源程序中,main函数的位置( )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 下面四个选项中,均是合法浮点数的选项是( )。

A. +1e+1 5e-9.4 03e2B. -.60 12e-4 -8e5C. 123e 1.2e-.4 +2e-1D. -e3 .8e-4 5.e-03. 若a=-14,b=3,则条件表达式a<b? a:b+1的值为()。

A. -14B. -13C. 3D. 44. 已知:int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是( ).A. 1,2B. 1,3C. 2,2D. 2,35. 为了判断两个字符串s1和s2是否相等,应当使用( )A. if (s1==s2)B. if(s1=s2)C. if (strcmp(s1,s2))D. if (strcmp(s1,s2)==0)6. 以下正确的描述是( )。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。

B. 函数的定义不可以嵌套,但函数的调用可以嵌套。

C. 函数的定义和函数的调用均不可以嵌套。

D. 函数的定义和函数的调用均可以嵌套。

7. 在C语言中,下面对函数不正确的描述是( )。

A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。

B. 允许函数递归调用。

C. 函数形参的作用范围只是局限于所定义的函数内。

D. 子函数必须位于主函数之前。

8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。

A. 该变量只在该复合语句中有效B. 该变量在该函数中有效C. 该变量在本程序范围内均有效D. 该变量为非法变量9. 以下正确的函数形式是( )。

A. double fun(int x,int y) { z=x+y;return z;}B. fun(int x,y) { int z; return z;}C. fun(x,y) { int x,y; double z; z=x+y; return z;}D. double fun( int x,int y) {double z; z=x+y; return z; }10. 以下程序的输出结果是( )。

c语言期末考试试题及答案

c语言期末考试试题及答案

c语言期末考试试题及答案一、选择题1. C语言中用于表示逻辑“与”操作的关键字是()。

A. &&B. ||C. &D. and答案:A2. 若有定义:int a = 5; int b = 10; 则表达式 a * b / 3 的值是()。

A. 15B. 17C. 20D. 25答案:D3. 下列哪个函数用于计算字符串的长度?A. strlen()B. strcmp()C. strcpy()D. strrev()答案:A4. C语言中,文件的打开模式“w”表示什么?A. 写入模式,文件不存在则创建,存在则覆盖B. 写入模式,文件不存在则创建,存在则追加内容C. 读取模式,文件不存在则创建,存在则覆盖D. 读取模式,文件不存在则报错,存在则读取内容答案:A5. 以下哪个选项是C语言中的合法整型常量?A. 0x1FB. 01FC. 1.0e2D. 0b11答案:A二、填空题1. 在C语言中,使用关键字________定义一个全局变量。

答案:extern2. 若有定义:int x = 10; 则执行语句 x += x; 后,变量x的值是________。

答案:203. 在C语言中,使用函数________可以将一个字符串复制到另一个字符串中。

答案:strcpy4. 一个C语言程序的执行是从________函数开始的。

答案:main三、判断题1. C语言中的数组下标是从0开始计数的。

()答案:正确2. 在C语言中,可以定义一个空指针,其值为0。

()答案:正确3. C语言允许在函数定义中再定义另一个函数。

()答案:错误四、简答题1. 请简述C语言中的指针和引用的主要区别。

答案:指针是一个变量,其存储的是另一个变量的地址;而引用是另一个变量的别名,它必须在定义时就被初始化,并且不能被重新指向其他变量。

指针可以直接被修改以指向不同的地址,而引用则始终指向初次定义时的变量。

2. 解释C语言中的预处理器指令#if、#else和#endif的作用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南大学试题卷(A)(2010---2011学年下学期)时间110分钟C及C++可视化程序设计课程48 学时 2 学分考试形式:笔试一、填空(每小题2分,共20分)1. 若x=2,b=3,x=3.5,y=2.5,则表达式(flaot)(a+b)/2+(int)x%(int)y的值为2. 若a=10,则表达式:a+=a-=a*=a/=a执行后的值为______3. 表达式!(“xyz”<“xy”)的值为_____4. 如果a=8,b=9,则表达式(++a==b--)?a++:b--的值为_____5. 若x=10,y=0,则语句while(x=y){x++;break;}循环体执行次数为____6. 设a=7,b=8,c=9,则表达式!(x=a)&&(y=b)&&0的值为____7. 设a=6,b=7,c=8,则表达式!(a+b)+c-1&&b+c/2的值为____8. 现有定义:static int a[2][4]={0,1,2,3,4,5,6,7};则表达式*a[1]的值为___9. 现有宏定义#define y 2,则表达式(…y‟==2)的结果为___10. 若x=y=z=2,则表达式(x||y++)&&(++z)执行后,z的值为________二、选择题(每小题2.分,共40分)1、程序运行时显示出错信息,可以排除下列哪一个因素()A、算法错误B、运行时输入数据错误C、未通过编译D、系统资源配置不当2、表达式!x||a==b等效于()A、!((x||a)==b)B、!(x||y)=bC、!(x||(a==b)D、(!x)||(a==b)3、下列各语句定义了数组,其中哪一个是正确的()A、int s1[5],s2[4,3];B、int n,a[n];C、char st [5]="A";D、int x(10),y(10);4、数组定义为"int a[4][5];",下列哪一个引用错误的()A、*aB、*(*(a+2)+3)C、&a[2][3]D、++a5、若x为浮点型,与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是_()。

A、3*x^n/(2*x-1) B、3*x**n/(2*x-1)C、3*pow(x,n)*(1/(2*x-1))D、3*pow(n,x)/(2*x-1)6、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。

A、voidB、intC、floatD、double7、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()。

A、p=q;B、*p=*q;C、n=*q;D、p=n;8、调用函数:strcat(strcpy(strl,str2),str3)的结果是()A.将串str1复制到串str2中后再连接到串str3之后B.将串strl连接到串str2之后再复制到串str3之后C.将串str2复制到串strl中后再将串str3连接到串strl之后D.将串str2连接到串strl之后再将串strl复制到串str3中9、C语言中以下说法正确的是()A.不能使用while语句构成的循环B.while语句构成的循环必须用break语句才能退出C.while语句构成的循环,当while语句中的表达式值为非零时结束循环D.while语句构成的循环,当while语句中的表达式值为零时结束循环10、有以下程序#include<stdio.h>main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是()A、b,bB、b,cC、a,bD、a,c11、下列各语句定义了数组,其中哪一个是正确的()A、int s1[5],s2[4,3];B、int n,a[n];C、char st [5]="A";D、int x(10),y(10);12、设有说明double (*p1)[N];其中标识符p1是()。

A. N个指向double型变量的指针。

B.指向N个double型变量的函数指针。

C. 一个指向由N个double型元素组成的一维数组的指针。

D. 具有N个指针元素的一维指针数组,每个元素都只能指向double型量。

13、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是()。

A、aa数组成元素的值分别是"abcd"和ABCD"B、aa是指针变量,它指向含有两个数组元素的字符型一维数组C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D、aa数组的两个元素中各自存放了字符'a'和'A'的地址14、设有如下定义:struct sk{ int a;float b;}data; int *p;若要使p指向data中的a域,正确的赋值语句是__ ___。

A、p=&a;B、 p=data.a;C、 p=&data.a;D、 *p=data.a15、有以下程序#include<stdio.h>struct STU{ char num[10];float score[3];}main(){struct STU s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;int i; float sum=0;for(i=0;i<3;i++) sum=sum+p->score[i];printf("%6.2f\n",sum);}程序运行后的输出结果是______。

A、260.00B、270.00C、280.00D、285.00 16、数组定义为int a[4][5],下列哪一个引用错误的()A) *a B) *(*(a+2)+3) C) &a[2][3] D) ++a17、下列语句中与语句while(i>=0&&i<=10){ if(i==5) continue;printf("%f\n",1.0/(i-5));i++;}功能相同的是()A) for(;i>=0&&i<=10;i++) if(i!=5) printf("%f\n",1.0/(i-5));B) for(;i>=0&&i<=10;i++) if(i==5) printf("%f\n",1.0/(i-5));C) for(;i>=0&&i<=10;i++) if(i!=5) printf("%f\n",1.0/(i-5));else break;D) for(;i<=0&&i>=10;i++) if(i!=5) printf("%f\n",1.0/(i-5));18.在以下一组运算符中,优先级最高的运算符是[ ]A) <= B) = C) %D) &&19. 下列选项中,不能用作标识符的是【】A) _1234_ B) _1_2 C) int_2_ D) 2_int_20、定义带参数的宏"#define jh(a,b,t) t=a;a=b;b=t",使两个参数a、b的值交换,下列表述中哪个是正确的()A、不定义参数a和b将导致编译错误B、不定义参数a、b、t将导致编译错误C、不定义参数t将导致运行错误D、参数a、b、t不是变量,不必定义类型三、阅读程序,给出运行结果。

(每小题5分,共20分)1、#include <stdio.h>#include <math.h>#define BE(x) 2*x*x*x#define AA 1#define B 3#define ROW(x) 2*x*xmain(){ int a=2,b=3,c,d;float x,y,z; char st;c=BE(++a); d=ROW(b+1);x=3.14159/4; y=sin(x)+cos(x);st=‟B‟+2;printf(“\nc=%d,a=%d,d=%d,AA=%d,y=%4.3f,s=%d\n”,c,a,d,AA,y,st); }运行结果为:2、#include <stdio.h>void sub();void main(){extern int a;printf(“\na=%d”,++a);sub();}int a=8;void sub(){int x=3;if(x==3) { int x=4;printf(“x=%d\n”,x++); }printf(“sub:x=%d,a=%d\n”,x,++a);}运行结果为:3、#include "stdio.h"void sub1(int (*t)[3]);void main(){int a[2][3]={0,1,2,3,4,6};char *string[]={"pascal","Bacis","Fortran"};char **pt; int i,j;printf("%d,%d\n",*a[0],*(a[1]+2)/3);sub1(a);for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d,",*(a[i]+j));printf("\n");pt=string;printf("%c,%s\n",*(*pt+1),*(pt+2));}void sub1(int (*t)[3]){int i,j;for(i=0;i<2;i++)for(j=0;j<3;j++)t[i][j]+=2;}运行结果为:4、#include "stdio.h"struct emp{char *name;int age;float sales;}void main(){struct emp a[2],b,c,*pt;="Chang";b.age=30;b.sales=200.0;a[0].name="Liu";a[0].age=55;a[0].sales=350.0;a[1].name="Hu";a[1].age=45;a[1].sales=300.0;pt=a;pt++;printf("%s's age is %d\n",pt->name,pt->age);c=b;pt=&c;printf("%s's sale is %3.0f\n",pt->name,pt->sales);}运行结果为:四、程序填空题(每小题10分,共20分)1、从键盘上任意输入两个数据,然后交换它们顺序进行输出。

相关文档
最新文档