一、选择题(请选择一个最合适的答案填在题前面的括号中,每题2分,15题,计30分)1、一个C程序的执行是从( A)A、main()函数开始,直到main()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main()函数开始,直到最后一个函数结束2、下列符号可以作为变量名的是( C )A、+aB、*pC、_DAYD、next day3、若定义int m=7,n=12; 则能得到值为3的表达式是(D )A、n%=(m%=5)B、n%=(m-m%5)2C、n%=m-m%5D、(n%=m)- (m%=5)54、为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C )组成配对关系A、缩排位置相同的ifB、在其之前未配对的ifC、在其之前最近的未配对的ifD、同一行上的if5、以下叙述中正确的是(A )A、函数的定义不可以嵌套,但函数的调用可以嵌套B、函数的定义可以嵌套,但函数的调用不可以嵌套C、函数的定义和调用都可以嵌套D、函数的定义和调用都不可以嵌套6、已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\103’是( C )A、AB、BC、CD、D7、下列语句段中不是死循环的是(B )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个元素是BA、a[2][4]B、a[1][3]C、a[3][1]D、a[4][2]10、有以下程序#include "stdio.h"#include "string.h"main(){char s[]="sb\n\\\'\r\b";printf("%d,%d\n",sizeof(s),strlen(s));A}A、8,7B、8,8C、7,8D、7,711、在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;114、若有定义char s[3][4];以下对数组元素s[i][j]的各种引用形式中错误的是(A )A、*(s[i]+j)B、*(s+i)+jC、s[i][j]D、*(*(s+i)+j)15、下面提供的一组函数中,用于按“记录”的方式进行输入和输出的是(C )A、fread(),fwrite()B、fscanf(),fprintf()C、fgets(),fputs()D、fgetc(),fputc()二、填空题(每题2分,10题,计20分)1、c语言的语句必须以_____;_______结尾,C语言中可以利用______强制类型转换_______将一个表达式的值转换成指定的类型。
2、利用TC或VC++6.0编辑C语言源程序,源程序的后缀为___.c______,生成的可执行程序后缀为__.obj___________。
3、有定义int a,b,c;则“a是偶数”的表达式是 __a%2==0__________,若已经知道a、b、c为正数,则a、b、c构成一个三角形的条件是_____(a+b)>c&&(a-b)<c___________________。
4、C语言中do-while 与while循环的主要区别是:do-while的循环体_______执行一次循环体,后判断表达式___________________,while语句循环体____先判断表达式,再执行循环体_________________________。
5、C语言中,一个自定义函数一般由两个部分组成,它们是___函数首部__________和____函数体________。
6、C语言中的预处理命令均以_#_______符号开头,可以出现在程序中的__任何___ 位置。
7、C语言中,将一个变量的地址称为___指针___ ,存放变量地址的变量称为____指针变量____ 。
8、若定义int (*p)( );则p是____指针___ ,而定义int * p( ); 则p是____指针函数_____ 。
9、C语言中,定义结构体类型的关键字是____ ___ ,文件(FILE)类型由系统在_______________头文件中的定义10、C语言中,用基本类型变量作为函数参数只能进行__单向___ 传值,而通过数组(指针、全局变量)等类型变量作为函数参数可以实现____双向_____ 传值。
三、阅读程序,按要求回答问题(每题3分,8题,计24分)1、以下程序的运行结果是________________________#include <stdio.h>main(){int i=5,j=6,m=i+++j;printf("%d,%d,%d\n",i,j,m);}2、下面程序的运行结果是____________ __________#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、阅读下面程序,设编译后生成的可执行文件名为cfile#include <stdio.h>main(int argc,char * argv[]){while (argc>1){++argv;printf("\n%s",*argv);2--argc;}}如果在操作系统状态下,输入cfile computer C_LANGUAGE将显示如下:_____________ ____________________________4、以下程序运行时,当输入Language Programming[Enter],其结果是____________ #include <stdio.h>main(){char str[30];scanf("%s",str);printf("%s\n",str);}5、下面的自定义函数的功能是___________________________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);}6、阅读下面程序,该程序的运行结果是:#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();}7、设有定义:则对将stu1变量的出生月份置为12的语句是___ _________________;structstudent{ int num;char name[20];struct date{ int month;int day;int year;}birthday;}stu1;8、写出下面程序的运行结果_____________________#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));}3四、程序设计(1、2每题8分, 3题10分,3题,计26分)1、编程实现求一元二次方程ax2+bx+c=0的根。
要求:从键盘输入a、b、c的值,并把方程的根(只考虑实根)显示在屏幕上。
2、编程实现统计文本文件(file.txt)中字符的个数。
3、定义一个整型二维数组并初始化,编程求该数组所有元素的和。
要求:分别用数组下标法、一级指针法、二级指针法实现。
4一、选择题(请选择一个最合适的答案填在题前面的括号中,每题2分,15题,计30分)1A 2C 3D 4C 5A 6C 7B(B\C选择一个就算对) 8C 9B 10A 11D 12D 13D 14B 15A二、填空题(每题2分,10题,计20分)部分对酌情给分下面为参考答案,意思正确也可给分。