
西北农林科技大学本科课程考试试卷 2006一2007年第一学期《C语言程序设计》课程A卷 题目 二 三 总分 得分 阅卷人 得分 一、填空题(每空2分,共20分。答案必须写在本页横线上,香则不得分) 1.设a,b,c表示三角形三边长,条件“任意两边之和都大于第三边”的逻辑表达式可以表 示为 2.表达式3*7%2+7%2*5的值为 3.数学公式√s(s-as-b(s-c)的C语言表达式为 4.若变量定义为:inta=21,b=55;要求用printf函数以a+b=76的形式输出a与b的和,完整的输出语句 是 5.变量有6个主要属性,除地址、值、作用域、生存期、存储类别外,还有一个需要在定义时说明的 重要属性是 6.语句“fread(a,2,5,fpl):”的功能是 7.若变量定义为:inta=3,b=4,c=5;则表达式al|b+c&b-c的值为 8.若变量定义为:f1oatx[3][4]:则x数组所有元素在内存中占用 个字节。 9.若变量定义为:inta=0xff;则输出语句printf("a=%d”,a):为 _o 10.同一个源程序中,全局变量与局部变量同名时, 变量不起作用。 得分 二、单项选择题(1-10题每题1分,11-20题每题2分,20-25题每题3分,共45分。答塞 必须写在小题题号前,否则不得分) 1.在C中,由源程序通过编译、链接生成应用程序文件的过程中,以下哪一类文件最不可能出现( )。 A、.C B、.jpg C、.obj D、.exe 2.C语言程序从main0函数开始执行,所以这个函数要写在()。 A、程序文件的开始 B、程序文件的最后 《C语言程序设计》A卷第1页共7页
《C 语言程序设计》A 卷 第1页 共 7页 西北农林科技大学本科课程考试试卷 2006—2007 年第一学期《C 语言程序设计》课程 A 卷 题目 一 二 三 总分 得分 阅卷人 一、填空题(每空 2 分,共 20 分。答案必须写在本页横线上,否则不得分) 1.设a,b,c表示三角形三边长,条件“任意两边之和都大于第三边”的逻辑表达式可以表 示为 。 2.表达式3*7%2+7%2*5的值为__________________。 3.数学公式 s(s − a)(s −b)(s − c) 的C语言表达式为 。 4.若变量定义为:int a=21,b=55;要求用printf函数以a+b=76的形式输出a与b的和,完整的输出语句 是_ 。 5.变量有6个主要属性,除地址、值、作用域、生存期、存储类别外,还有一个需要在定义时说明的 重要属性是____________________。 6.语句“fread(a,2,5,fp1);”的功能是 。 7.若变量定义为:int a=3,b=4,c=5;则表达式a||b+c&&b-c的值为 。 8.若变量定义为:float x[3][4];则x数组所有元素在内存中占用_______个字节。 9.若变量定义为:int a=0xff;则输出语句printf("a=%d",a);为 。 10.同一个源程序中,全局变量与局部变量同名时, 变量不起作用。 二、单项选择题(1-10 题每题 1 分,11-20 题每题 2 分,20-25 题每题 3 分,共 45 分。答案 必须写在小题题号前,否则不得分) 1.在 C 中,由源程序通过编译、链接生成应用程序文件的过程中,以下哪一类文件最不可能出现( )。 A、.c B、.jpg C、.obj D、.exe 2.C 语言程序从 main()函数开始执行,所以这个函数要写在( )。 A、程序文件的开始 B、程序文件的最后 得分 得分

C、它所调用的函数的前面 D、程序文件的任何位置 3.下列关于C语言的叙述错误的是()。 A、大写字母和小写字母的意义相同 B、不同类型的变量可以在一个表达式中 C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D、同一个运算符号在不同的场合可以有不同的含义 4.在C语言中,错误的int类型的常数是()。 A、32768 B、0 C、037 D、OxAF 5.在C语言中,整数-8在内存中的存储形式是( )。 A、1111111111111000 B、1000000000001000 C、0000000000001000 D、1111111111110111 6.已知:char a=\70':则变量a中( A、包含1个字符 B、包含2个字符 C、包含3个字符 D、说明非法 7.若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的段序段是()。 A、*p=&a;scanf("%lf”,p);B、*p=&a;scanf("%f”,p): C、p=&a;scanf("%lf”,wp);D、p=&a;scanf("%lf”,p): 8.说明语句"int(p)():"的含义是()。 A、p是一个指向一维数组的指针变量 B、p是指针变量,指向一个整型数据 C、p是一个指向函数的指针,该函数的返回值是一个整型 D、以上都不对 9.以下能够正确定义字符串的是()。 A、char str[]='\064'}B、char stra="\x43 C、char str=' D、char str[]="\0 10.己定义以下函数 int fun(int *p){ return *p: fun函数返回的值是( )。 A、不确定值 B、一个整数 C、形参p中存放的值 D、形参p的地址值 11.已知以下程序段: 《C语言程序设计》A卷第2页共7页
《C 语言程序设计》A 卷 第2页 共 7页 C、它所调用的函数的前面 D、程序文件的任何位置 3.下列关于 C 语言的叙述错误的是( )。 A、大写字母和小写字母的意义相同 B、不同类型的变量可以在一个表达式中 C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D、同一个运算符号在不同的场合可以有不同的含义 4.在 C 语言中,错误的 int 类型的常数是( )。 A、32768 B、0 C、037 D、0xAF 5.在C语言中,整数-8 在内存中的存储形式是( )。 A、1111 1111 1111 1000 B、1000 0000 0000 1000 C、0000 0000 0000 1000 D、1111 1111 1111 0111 6.已知:char a='\70';则变量 a 中( )。 A、包含 1 个字符 B、包含 2 个字符 C、包含 3 个字符 D、说明非法 7.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的段序段是( )。 A、*p=&a;scanf("%lf",p); B、*p=&a;scanf("%f",p); C、p=&a;scanf("%lf",*p); D、p=&a;scanf("%lf",p); 8.说明语句"int (*p)( );"的含义是( )。 A、p 是一个指向一维数组的指针变量 B、p 是指针变量,指向一个整型数据 C、p 是一个指向函数的指针,该函数的返回值是一个整型 D、以上都不对 9.以下能够正确定义字符串的是( )。 A、char str[]={'\064'} B、char str="\x43" C、char str='' D、char str[]="\0" 10.已定义以下函数 int fun(int *p){ return *p;} fun 函数返回的值是( )。 A、不确定值 B、一个整数 C、形参 p 中存放的值 D、形参 p 的地址值 11.已知以下程序段:

int a=4,b=3; a=a"b; b=b"a; a=a"b: 则执行以上语句后a和b的值分别是( A、a=3,b=4 B、a=4,b=3 C、a=4,b=4 D、a=3,b=3 12.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是。 A、swapa(intx,inty) B.swapb(int *x,int *y) (int temp: fint temp; temp=x:x=y:y=temp: temp=x:x=y:y=temp: } C、swapc(int*x,inty) D.swapd(int *x,int *y) {int temp: {int *temp: temp=*x:*x=*y:*y=temp: temp=x:x=y:y=temp: } } l3.已知inta=10,执行语句a=a0)&(x<4):x+,y-): 《C语言程序设计》A卷第3页共7页
《C 语言程序设计》A 卷 第3页 共 7页 int a=4,b=3; a=a^b; b=b^a; a=a^b; 则执行以上语句后 a 和 b 的值分别是( )。 A、a=3,b=4 B、a=4,b=3 C、a=4,b=4 D、a=3,b=3 12.定义一个函数实现交换 x 和 y 的值,并将结果正确返回。能够实现此功能的是____。 A、swapa(int x,int y) B、swapb(int *x,int *y) {int temp; {int temp; temp=x;x=y;y=temp; temp=x;x=y;y=temp; } } C、swapc(int *x,int *y) D、swapd(int *x,int *y) {int temp; {int *temp; temp=*x;*x=*y;*y=temp; temp=x;x=y;y=temp; } } 13.已知 int a=10,执行语句 a=a0)&&(x<4);x++,y-- ) ;

A、是无限循环B、循环次数不定C、循环执行4次 D、循环执行3次 17.已知inti=1:执行语句while(i+ main() (FILE *fp: char *s1="Fortran",*s2="Basic"; fp=fopen("c:\\test.txt","wb"); if(fp==NULL){printf("Can't open test.txt file\n");exit(1) 《C语言程序设计》A卷第4页共7页
《C 语言程序设计》A 卷 第4页 共 7页 A、是无限循环 B、循环次数不定 C、循环执行 4 次 D、循环执行 3 次 17.已知 int i=1; 执行语句 while (i++ B、n C、不定 D、数组定义有误 19.若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。 A、数组首地址 B、数组的第一个元素值 C、数组中全部元素的值 D、数组元素的个数 20.在 C 语言中,函数的数据类型是指( )。 A、函数返回值的数据类型 B、函数形参的数据类型 C、调用该函数时的实参的数据类型 D、任意指定的数据类型 21.以下程序段输出结果是( )。 main(){ union un{ int a; char c[2]; }w; w.c[0]='A'; w.c[1]='a'; printf("%x\n",w.a); } A、65 B、41 C、4161 D、6141 22.以下程序执行后,文件 test.txt 中的内容是( )。 #include main() {FILE *fp; char *s1="Fortran",*s2="Basic"; fp=fopen("c:\\test.txt","wb"); if(fp==NULL){printf("Can't open test.txt file\n");exit(1);}

fwrite(s1,7,1,fp); fseek(fp,OL,SEEK SET);/*文件位置指针移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); } A、Basican B、BasicFortran C、Fortran D、Basic 23.以下程序段执行结果为()。 main() {char*和[]={"3697”,"2584"}: int i,j; long num=0; for(i=0:i struct STU {char name[10]; int num; void f(char *name,int num) (struct STU s[2]={("SunDan",20044),{"PengHua",20045)}; num=s [0].num; 《C语言程序设计》A卷第5页共7页
《C 语言程序设计》A 卷 第5页 共 7页 fwrite(s1,7,1,fp); fseek(fp,0L,SEEK_SET);/*文件位置指针移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); } A、Basican B、BasicFortran C、Fortran D、Basic 23.以下程序段执行结果为( )。 main() {char *p[]={"3697","2584"}; int i,j; long num=0; for(i=0;i struct STU {char name[10]; int num;}; void f(char *name, int num) {struct STU s[2]={{"SunDan",20044},{"PengHua",20045}}; num=s[0].num;

strcpy(name,s[0].name); main() (struct STU s[2]={("YangSan",20041),{"liSiGuo",20042)},*p; p=&s[1]: f(p->name,p->num); printf("%s %d\n",p->name,p->num); getch(); } A、SunDan20042 B、SunDan20042 C、LiSiGuo 20042 D、YangSan20044 25.以下程序段执行结果为()。 void fun(int a[],int n) (int i,j,t; for(i=0:i<n-1:i++) for(j=i+1;j<n;j++) if(a[i]<a[j])(t=a[i];a[i]=a[j];a[j]=t; } main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i: fun(aa+2,5); for(i=0;i<10:i++)printf("%3d",aa[i]); getch(); } A、12345678910B、10987654321 C、12765438910D、12987654310 得分 三、程序设计题(共35分) 1.中国的十二生肖依次是“鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪”已知今 年是狗年,请编程完成:输入一个大于0的年份,输出该年的生肖。(8分) 《C语言程序设计》A卷第6页共7页
《C 语言程序设计》A 卷 第6页 共 7页 strcpy(name,s[0].name); } main() {struct STU s[2]={{"YangSan",20041},{"liSiGuo",20042}},*p; p=&s[1]; f(p->name,p->num); printf("%s %d\n",p->name,p->num); getch(); } A、SunDan 20042 B、SunDan 20042 C、LiSiGuo 20042 D、YangSan 20044 25.以下程序段执行结果为( )。 void fun(int a[],int n) {int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;} } main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i; fun(aa+2,5); for(i=0;i<10;i++) printf("%3d",aa[i]); getch(); } A、1 2 3 4 5 6 7 8 9 10 B、10 9 8 7 6 5 4 3 2 1 C、1 2 7 6 5 4 3 8 9 10 D、1 2 9 8 7 6 5 4 3 10 三、程序设计题(共 35 分) 1.中国的十二生肖依次是“鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪”已知今 年是狗年,请编程完成:输入一个大于 0 的年份,输出该年的生肖。(8 分) 得分

2.编程对以下6个国家名由小到大排序(9分)。 China Russia Japan America Canada NewZealand 3.编程计算C”=m 要求计算阶乘用函数实现(9分)。 nl(m-n)! 4.一个自然数倒过来读仍是这个数,就叫回文数,有些回文数还是素数,就叫回文式素数,如93239。 编程找出10000~99999范围内的回文式素数,并输出到文本文件data.txt中,要求判断回文及判断素数 的程序段用函数实现。(9分) 《C语言程序设计》A卷第7页共7页
《C 语言程序设计》A 卷 第7页 共 7页 2.编程对以下 6 个国家名由小到大排序(9 分)。 China Russia Japan America Canada NewZealand 3.编程计算 !( )! ! n m n m C n m − = ,要求计算阶乘用函数实现(9 分)。 4.一个自然数倒过来读仍是这个数,就叫回文数,有些回文数还是素数,就叫回文式素数,如 93239。 编程找出 10000~99999 范围内的回文式素数,并输出到文本文件 data.txt 中,要求判断回文及判断素数 的程序段用函数实现。(9 分)