分享

C语言----期末考试题

 昵称23122600 2015-04-27

C语言----期末考试题

一、选择题(请选择一个最合适的答案填在题前面的括号中,每题 2 分,15 题,计 30 分)
1、一个 C 程序的执行是从(A ) A、main()函数开始,直到 main()函数结束 B、第一个函数开始,直到最后一个函数结束 C、第一个语句开始,直到最后一个语句结束 D、main()函数开始,直到最后一个函数结束 2、下列符号可以作为变量名的是(C ) A、+a B、*p C、_DAY D、next day 3、若定义 int m=7,n=12; 则能得到值为 3 的表达式是( D) A、n%=(m%=5) B、n%=(m-m%5) C、n%=m-m%5 D、(n%=m)- (m%=5) 4、为了避免嵌套的 if-else 语句的二义性,C 语言规定 else 总是与( C )组成配对关系 A、缩排位置相同的 if B、在其之前未配对的 if C、在其之前最近的未配对的 if D、同一行上的 if 5、以下叙述中正确的是(A ) A、函数的定义不可以嵌套,但函数的调用可以嵌套 B、函数的定义可以嵌套,但函数的调用不可以嵌套 C、函数的定义和调用都可以嵌套 D、函数的定义和调用都不可以嵌套 6、已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表 示的字符常量‘\103’是(C )


A、A B、B C、C D、D 7、下列语句段中不是死循环的是( D) A、for (i=1;;i++) B、 i=100; Sum=sum+1; while(1) { i=i%100+1; if (i= =20) break; } C、k=0; D、s=3379; do while (s++%2+3%2) { s++; ++k; } while (k<=0) 8、以下关于字符数组的描述中错误的是( c) A、字符数组可以存放字符串 B、字符数组中的字符串可以整体输入和输出 C、可以在赋值语句中通过运算符“=”对字符数组整体赋值 D、不可以用关系运算符对字符数组中的字符进行比较 9、在定义了数组 int a[3][6];后,第 10 个元素是 (D) A、a[2][4] B、a[1][3] C、a[3][1] D、a[4][2] 10、有以下程序 ( A) #include "stdio.h" #include "string.h" main() { char s[]="sb\n\\\'\r\b"; printf("%d,%d\n",sizeof(s),strlen(s)); } A、8,7 B、8,8 C、7,8 D、7,7 11、在 C 语言的程序中,下列叙述错误的是( D ) A、形参是局部变量 B、不同的函数中,可以使用相同名称的变量 C、在一个函数的内部,可以在复合语句中定义变量 D、main()函数中定义的变量在整个文件或程序中都有效 12、C 语言中规定函数的返回值的类型是由( D )

A、return 语句中的表达试类型所决定 B、调用该函数时的主调用函数类型所决定 C、调用该函数时系统临时决定 D、在定义该函数时所指定的函数类型所决定 13、已知变量 a 被定义为 int 型变量,以下定义并初始化指针变量 p 的语句中正确的是 ( D ) A、int p=a; B、int *p=*a; C、int p=&a; D、int *p=&a; 14、若有定义 char s[3][4];以下对数组元素 s[i][j]的各种引用形式中错误的是( B ) A、*(s[i]+j) B、*(s+i)+j C、s[i][j] D、*(*(s+i)+j) 15、 x、 j 和 k 都是 int 型变量,则执行表达式 x=(i=4 , j=16 , k=32)后 X 的值为______C__ 若 i、 A) 4 B) 16 C) 32 D) 52

在______ stdio.h _________头文件中的定义 10、C 语言中,用基本类型变量作为函数参数只能进行 单向_____ 传值,而通过数 组(指针、全局变量)等类型变量作为函数参数可以实现 ___双向______ 传值。

三、阅读程序,按要求回答问题(每题 4 分,6 题,计 24 分)
1、以下程序的运行结果是__6,6,11______________________ #include <stdio.h> main() { int i=5,j=6,m=i+++j; printf("%d,%d,%d\n",i,j,m); } 2、下面程序的运行结果是_____a=2 b=1______ __________ #include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++;b++; break; case 3: a++;b++; } printf("\na=%d,b=%d",a,b); } 3、以下程序运行时,当输入 Language Programming[Enter],其结果是__ Language __________ #include <stdio.h> main()


二、填空题(每题 2 分,10 题,计 20 分)
1、c 语言的语句必须以_____; }_______结尾,C 语言中可以利用_____强制类型转换 ________将一个表达式的值转换成指定的类型。 2、利用 TC 或 VC++6.0 编辑 C 语言源程序,源程序的后缀为_.c(.cpp)______,生成 的可执行程序后缀为_______.exe______。 3、有定义 int a,b,c;则“a 是偶数”的表达式是 ___a%2=0_________,若已经知道

a、b、c 为正数,则 a、b、c 构成一个三角形的条件是 ________a+b>c&&a+c>b&&b+c>a________________。
4、C 语言中 do-while 与 while 循环的主要区别是:do-while 的循环体____________ 先执行循环体在判别表达式______________, while 语句循环体___先判别表达式在执行 循环体__________________________。 5、C 语言中,一个自定义函数一般由两个部分组成,它们是____函数首部_________ 和_______函数体_____。 6、C 语言中的预处理命令均以_____#___符号开头,可以出现在程序中的 _任何____ 位置。 7、 语言中, C 将一个变量的地址称为 指针______ , 存放变量地址的变量称为 _____ 指针变量___ 。 8、若定义 int (*p)( );则 p 是 数__ 。 ___指针____ ,而定义 int * p( ); 则 p 是 _______函

9、C 语言中,定义结构体类型的关键字是____ struct___ ,文件(FILE)类型由系统

{ char str[30]; scanf("%s",str); printf("%s\n",str); } 4、下面的自定义函数的功能是_________递归求 n!________________ int fun(int n) { int f; if(n<0) printf("n<0,data error!"); else if(n= =0||n= =1) f=1; else f=fun(n-1)*n; return(f); } 5、阅读下面程序,该程序的运行结果是: #include <stdio.h> int i=1; other() { static int a=2; static int b; int c=10; a=a+2; i=i+32; c=c+5; printf("-----OTHER------\n"); printf("i:%d a:%d b:%d c:%d\n",i,a,b,c); b=a; } main() { static int a; register int b=-10; int c=0; printf("-----MAIN------\n"); printf("i:%d a:%d b:%d c:%d\n",i,a,b,c); c=c+8; other(); printf("-----MAIN------\n"); printf("i:%d a:%d b:%d c:%d\n",i,a,b,c);


i=i+10; other(); } 6、写出下面程序的运行结果 __1 2 3 4___________________ #include "stdio.h" main() { static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *arr[3]={a[0],a[1],a[2]}; int i,**p; p=arr; for(i=0;i<4;i++) printf("%d ",*(*p+i)); }

四、程序设计(1、2 每题 8 分, 3 题 10 分,3 题,计 26 分)
1、 编程实现求一元二次方程 ax2+bx+c=0 的根。 要求:从键盘输入 a、b、c 的值,并把方程的根(只考虑实根)显示在屏幕上。 #include<stdio.h> #include<stdio.h> Void main() { Float a,b,c,disc,x1,x2,p,q; Scanf(“a=%f,b=%f,c=%f”,&a,&b.&c); Disc=b*b-4*a*c; P=-b/(2*a); Q=sqrt(disc)/(2*a); X1=p+q;x2=p-q; Printf(“x1=%5.2\fnx2=%5.2f\n”,x1,x2); }

2、编程实现统计输入文本中字符的个数。 #include<stdio.h> Void main() #include <stdio.h> #include <string.h> #include <conio.h> int main() { char*str; printf("input:"); gets(str); puts(str); printf("%d",strlen(str)); getch(); return 0; }

3、定义一个整型二维数组并初始化,编程求该数组所有元素的和。 提示:可以分别用数组下标法、一级指针法、二级指针法实现。 #include<stdio.h> #include<math.h> Int main() { Int a[4][5]; Int I,g,k,s; K=1; Puts(该四行五列的二位数组是:); For(i=0;i<4;++i) { For(j=0:i<5;++j) { A[i][j]=k++; Printf(“%d\t”,a[i][j]); If(i%3==0||j%4==0) S +=a[i][j]; } Putchar(\n) } Printf(\n 该二维数组周边元素之和=%d\n,s); }

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多