第一部分 选择题(分) 一单项选择题(本大题共小题每小题分共分) 在每小题列出的四个备选项中只有一个是符合题目要求的请将其代码填写在题后的 括号内错选多选或未选均无分 组成C语言程序的是( ) A过程 B函数 C子程序 D主程序和子程序 下列表达式的值为的是 () A ﹪ B / C / D < C语言中定义某个内部变量时如果省略了存储类型符则系统将默认该变量是( ) A自动型 B寄存器型 C静态型 D外部参照型 设int a = ;则表达式a<&& a>的运算结果和a的值分别是 () A 和 B 和 C 和 D 和 自动型变量分配在( ) A内存的数据区中 BCPU的通用寄存器中 C内存的程序区中 D内存的堆栈区中 下列保留字中用于构成循环结构的是 () A if B while C switch D default 对dowhie语言错误的说法是( ) A可构成多重循环结构 B循环次数不可能为 C循环次数可能为 D先执行后判断 设 char x =′a′;则printf(″x = ﹪c y = ﹪c \\ n″x);的输出是() A x = ay = B x = y = a C x = y = D x = ay = a 设char str[]=″ABCDE″str[]=″XYZ″;则执行语句 printf(″%d″strlen(strcpy(strstr))); 后的输出是( ) A B C D 执行下列程序 int a[][]={{}{}{}}; int b[][]={}; main() {printf(″﹪d \\ n″a[][] + b[][]);} 后输出的结果是 () A B C D 语句int (*p)( );的含义是( ) Ap是一个指向函数的指针变量该函数的返回值是一个整型数据 Bp是指针变量指向一个整型数据 Cp是一个指向一维数据的指针变量 Dp是指针函数 设int x[] = {}* p = x;则值为的表达式是 () A p + = * + + p B p + = * p + + C p + = * p D p + = + + * p 对于程序段 float f(int a) {int b;…} main( ) {int mn; m=f(n);…} char f(int xint y) {int a;…} 变量mn的作用范围是( ) A整个程序段 Bmain函数 Cmain函数和f函数 Dmian函数和f函数 执行下列程序 int a = b = ; void fun(int x int x) {printf(″﹪d ﹪d \\ n″ x + x b);} main() {int a = b = ;fun(a b);} 后输出的结果是 () A B C D 在下列运算符中优先级最低的是( ) A! B· C( ) D[ ] 设有定义语句enum t {a a = a a = }time; 则枚举常量a和a的值分别为 () A 和 B 和 C 和 D 和 对于文件操作方式″rb+″准确的说法是( ) A可读写文本文件 B只读二进制文件 C只读文本文件 D可读写二进制文件 在文件使用方式中字符串″rb″表示 () A 打开一个已存在的二进制文件只能读取数据 B 打开一个文本文件只能写入数据 C 打开一个已存在的文本文件只能读取数据 D 打开一个二进制文件只能写入数据 ???????? 设int a=b=c=; 经过表达式(c=a!=b)&&(a= =b)&&(c=b)运算后ab和c的值分别是( ) A B C D main()函数可以带两个形参一般分为argc和argv其中argv可以定义为() A int argv; B char * argv[]; C char argv[]; D char ** argv[]; 第二部分 非选择题(共分) 二填空题(本大题共小题每小题分共分) 请在每小题的空格中填上正确答案错填不填均无分 设char ab;则表达式a/b′c′的值的类型为 设int k=;执行printf(″%u″k);后输出的值是 设for(k=;k<;k++)++k;则该循环共执行 次 设int a =b=;经表达式a=a∧bb=a∧ba=a∧b运算后ab的值分别是 表示空类型的保留字是 被调函数在执行结束时这个函数中定义的_______________类型的变量不被释放 设 struct student { int no; char name[]; float score[]; } sl* p = &sl; 用指针法给sl的成员no赋值的语句是___________________ C语言程序中对文本文件的存取是以________________为单位进行的 设char string[] =″This_is_a_book!″;则数组的长度应是________________ 设int a[][] = {{}{}};则数组元素_____________________的值为 三程序分析题 (本大题共小题每小题分共分) 阅读下列程序将输出结果写到各题右侧的空白处
int a = ; main() {int i; for(i = ;i< = ;i + +) {a + + ; printf(″﹪d″a); s() } { s() {static int a = ; a + + ; printf(″﹪d \\ n″a); }
# include ″stdioh″ main() {char c; c = getchar(); if((c> =′a′&&c< =′z′) ‖c> =′X′&&c< =′Z′)c = c ; printf(″﹪c \\ n″c); } 设从键盘上输入Next ↙
# define N main() {int ijtempa[N]={}; for(i = ;i {j = N - 1 - i; temp = a[i];a[i]=a[j];a[j]=temp; } for(i = 0;i } 34.int x=30,y=50; sub(x,y) { y=x>y?x:y; return y; } main( ) { {int x=100; printf(″%d\\n″,sub(x,y)); } printf(″%d,%d\\n″,x,y); } 35.设文件file1.c的内容为COMPUTER #include ″stdio.h″ main( ) { FILE *fp; char ch; if((fp=fopen(″file1.c″,″r″))= =NULL) { printf(″Cannot open file\\n″); exit(0); } while(!feof(fp)) { ch=fgetc(fp);if(ch>=′A′&&ch<=′Z′)fputc(ch+32,stdout); } fclose(fp); } 四、程序填充题(本大题共3小题,每小题6分,共18分) 给出下列程序,将横线处缺少的部分补上,使其能正确运行。TW.WINGwIT.cOm 36.将一个十进制整数n转变为二进制数。 main( ) { int i=0,j,n,num[20]; scanf(″%d″, ); /*第一空*/ while(n!=0) { num[i++]= ; /*第二空*/ n= ; /*第三空*/ } for(j=i-1;j>=0;j--)printf(″%d″,num [j]); } 37.一个一维数组和一个二维数组同处一个共用型,将数据输入一维数组后,在二维数组中输出。 main( ) {union data { int a[10]; int b ;/*第一空*/ }; union data ab; int i,j; for(i=0;i<10,i++) scanf(″%d″, ); /*第二空*/ for(i=0;i<2;i++) for(j=0;j<5;j++) printf(″%5d″, );/*第三空*/ < |