当前位置:文档之家› C语言模拟试卷

C语言模拟试卷


字节的内存单元。( ) 7.若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21。( ) 8.若有定义和语句:struct student { int num; char name[10]; float score; } s[5] = { {1, "lili", 98.5}, {9, "xiaohua", 66} }, *p = s; printf( "%d", *p++ ); 输出结果是( ) 9.在程序中定义了一个结构体类型后,可以多次用它来定义具有 该类型的变量。( ) 10.在Turbo C中,此定义和语句是合法的:enum aa{ a=5, b, c }, bb; bb = ( enum aa )5; ( )
五、程序设计题(本大题共2小题,每题12分,共24分 ),每小题给出了一个程序设计要求, 请按照要求写出源程序代码,如果源程序代码中出现语法错误或逻辑错误,则酌情扣分。
1.(12分)编程序求一个存放10个元素的一维数组中的最大值和最 小值并输出这两个值。要求设计一个求最大和最小值的函数void MaxMin,用指针作为函数的参数。在该函数中,将数组中存放的10个 元素逐一进行比较,让两个指针分别指向最大元素和最小元素。 参考代码: #include "stdio.h" #define N 10 main( ) { void MaxMin (int arr[],int *pt1,int *pt2,int n); int array[N]={10,7,19,29,4,0,7,35,-16,21}; int *p1,*p2,a,b; p1=&a; p2=&b; MaxMin(array,p1,p2,N); printf("max=%d,min=%d",a,b); }
A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 11.C语言中的文件类型只有( )。 A 索引文件和文本文件两种 B 文本文件一种 C 二进制文件一种 D ASCII码文件和二进制文件两种 12.下面选项中正确的赋值语句是(设 char a[5],*p=a;)( )。 A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd"; 13.设a为int型变量,执行下列赋值语句后,a的取值分别是( )。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 14.具有相同类型的指针类型变量p与数组a,不能进行的操作是( )。 A p=a; B *p=a[0]; C p=&a[0]; D p=&a; 15.已知函数fread的调用形式为fread(buffer,size,count, fp),其中buffer代表的是( )。 A 存放读入数据项的存储区 B 存放读入数据的地址或指向 此地址的指针 C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入 的数据项总数
void MaxMin(int arr[],int *pt1,int *pt2,int n) { int i; *pt1=*pt2=arr[0]; for(i=1;i<n;i++) { if(arr[i]>*pt1) *pt1=arr[i]; else if(arr[i]<*pt2) *pt2=arr[i]; } } 2.(12分)建立一个数组,共4个元素,其中每个元素都是一个学 生的信息,包括学号、姓名、年龄。输入一个学号,如果数组中的某个 元素所包含的学号等于此学号,则将此学生的信息输出,否则输出“没 有该学生的记录!”要求用结构体数组的形式来实现。 参考代码: #include "stdio.h" struct student { int number; char name[10]; int age; } stArr[4]; main( ) { struct student stArr[4] = {1003,"Chen",20},{1004,"Tian",21}}; int tmpnum; printf("请输入待查询的学生学号:\n"); {{1001,"Li",22},{1002,"Wei",21},
二、判断题(本大题共10小题,每小题1分,共10分 )
1.在Turbo C中,整型数据在内存中占2个字节。( ) 2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。( ) 3.break语句用在循环体中,可结束本层循环,continue语句用在 循环体中,可结束本次循环。( ) 4.函数的递归调用不过是一个函数直接或间接地调用它自身。( ) 5.函数strlen("ASDFG\n")的值是7。( ) 6.若有定义:char s[ ]="china";则Turbo C系统为数组s开辟6个
A 125,6,31 B 125,6,1 C 125,6.666666,31 D 125.534,6.666666,2 4. 以下程序的输出结果为( )。 main( ) { int i=010, j=10; printf("%d, %d \n", i++, j--); } A 11,9 B 9,10 C 8,10 D 9,9 5.设有说明 int (*ptr)();其中标识符ptr是( )。 A 是一个指向整形变量的指针 B 是一个指针,它指向一 个函数值是int的函数 C 是一个函数名 D定义不合法 6.以下函数调用语句中含有( )个实参。 func((e1,e2), (e3,e4,e5)); A2 B3 C5 D 语法错误 7.以下程序的输出结果为( )。 void prtv(int *x) { printf("%d\n", ++*x); } main() { int a=25; prtv(&a); } A) 23 B) 24 C) 25 D) 26 8.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的 值是( )。 A 7 B 8 C 9 D 2 9.设有如下程序段,下面描述中正确的是 ( )。 int k = 10; while ( k = 0 ) k = k-1; A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D循环体语句执行一次 10.在C语言程序中,以下说法正确的是( )。
} 4. void prtv(int *x) { printf("%d\n", ++*x); } main() { int a=25; prtv(&a); } 答案: 5.#include "stdio.h" main() { void fac(int n,int *t);
int y; fac(5, &y); printf(“y=%d\n”,y); } void fac(int n,int *t) { int s; if((n==1)||(n==0)) *t=2; else { fac(n-1,&s); *t=n*s; } } 答案:
scanf("%d", &tmpnum ); int n = 0; for( int i=0;i<4;i++ ) { if( stArr[i].number == tmpnum ) { printf("该学号的学生信息如下:\n"); printf( "%d,%s,%d",stArr[i].number,பைடு நூலகம்stArr[i].name, stArr[i].age ); n = 1; break; } } if ( n == 0 ) printf("没有该学生的记录!\n"); }
int i=5; main( ) { int f1( ); int i=3; { int i=10; i++; printf(“%d\n”,i); } f1( ); i+=1; printf(“%d\n”,i); } int f1( ) { i=i+1; return(i); } 答案:
3.
#include "stdio.h" main( ) { int i,j,a[]={0,2,8,4,5}; printf("\n"); for(i=1;i<=5;i++) { j=5-i; printf("%2d",a[j]); } 答案:
题 号 得 分 阅卷教 师 阅卷时 间






卷面成 绩
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有 一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分
1.C语言源程序的基本单位是( )。 A 过程 B 函数 C 子程序 D 标识符 2.下列说法不正确的是( )。 A 主函数main中定义的变量在整个文件或程序中有效 B 不同函数中,可以使用相同名字的变量 C 形式参数是局部变量 D 在一个函数内部,可以在复合语句中定义变量,这些变量只 在本复合语句中有效 3. 设a为int型变量,执行下列赋值语句后,a的取值分别是( )。 a=125.534; a=20.0/3; a=(int)125.521%4;
相关主题