安徽大学C语言考试试卷2(9页).doc
-安徽大学C语言考试试卷2-第 9 页院/系 年级 专业 姓名 学号 答 题 勿 超 装 订 线-装-订-线-安徽大学20 08 20 09 学年第 二 学期C语言程序设计考试试卷(B卷)(闭卷 时间120分钟)题 号一二三四五总分得 分阅卷人得分一、单项选择题(每小题2分,共20分):下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。答在试卷上不得分。1. 设x为整型变量,和表达式“!(!x)”值完全相同的表达式是【_】A. x=0B. x=1C. x!=0D. x!=12. 下面程序段执行后,a的值是【_】。 int a; printf("%d n", (a=4*5, a*4, a+5) );A. 60B. 20C. 15D. 103. 判断字符串s1与字符串s2相等,应当使用【_】。A. if (s1 = s2) B. if (strcmp(s1, s2)C. if (!strcmp(s1, s2) D. if (strcmp(s1, s2) = 0)4. 若有定义int (*p)4,则标识符p是一个【_】。A. 指向整型变量的指针变量B. 指向函数的指针变量C. 指向有四个整型元素的一维数组的指针变量D. 指针数组名,有四个元素,每个元素均为一个指向整型变量的指针5. 下列程序的执行结果是【_】。 #include "" #include "" void main( void ) char s10= 'H', 'e', 'l', 'l', 'o' printf("%dn",strlen(s);A. 5B. 6C. 10D. 116. 下列对字符串的定义中,错误的是【_】。A. char str7 = "FORTRAN"B. char str = "FORTRAN"C. char *str = "FORTRAN"D. char str = 'F','O','R','T','R','A','N',0; 7. 以下程序的输出结果是【_】。 char *s="ABCD", *p; for( p=s; *p ; p+) printf("%sn", p);)ABCD )A )D )ABCDBCDBCABCCDCBABDDAA8. “strlen("141141abct")”的返回值是【_】。A. 14B. 12C. 13D. 99. 若定义struct char name8; int age;class2,*p=class;下面输入语句中错误的是【_】。)scanf("%d", &(p->age);)scanf("%s", p->name);)scanf("%d", &(*p).age);)scanf("%s", &(p->name);10. 已知学生记录描述为:struct student int no;charname20;charsex;structint year;char month15;int day; birth;struct student s;设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是_A s.birth.year = 1984; s.birth.month = "11" s.birth.day = 11;B s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11;C s.birth.year = 1984; strcpy(, "11"); 答 题 勿 超 装 订 线-装-订-线- s.birth.day = 11;D s.birth.year = 1984; strcpy(, 11); s.birth.day = 11;得分二、填空题(每小题2空,每空1分,共20分)请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。1. C程序标识符只能由英文字母、数字、_组成,且第一个字母必须是字母或_。2. 表达式“”的值为_;表达式“5>3&&2|!8<4-2”的值为_。3. 判断字符变量MyChar是否为小写字母的条件表达式为_ 'a' _ 'z'。4. 函数fputs(x,y)的主要功能是_,正确时函数的返回值是_。5. _语句提前结束本轮循环,开始下一轮循环。_终止并跳出本层的循环结构。6. 对于数组x55,*(x+2)+3表示_, *(x3+2)表示_。7. 设有char *s"ABCD",则printf("%s",s)的输出是_;而printf("%c",*s)的输出是_. 8. 数组名代表地址_,指针代表地址_。9. 若定义struct int num;float mark; stu1,*ps=&stu1;则通过指针ps访问结构变量stu1的成员mark的方法是_或_。10. 语言文件按数据的存放形式可分为_文件和_文件。得分三、程序分析题(每小题4分,共20分)阅读程序,将其运行结果填在答题卡相应题目的横线上。答在试卷上不得分。1#include <stdio.h>#include <string.h>void main()char str30;strcpy(&str0,"china");strcpy(&str1,"define");strcpy(&str2,"arm");printf("%sn",str);2#include <stdio.h>void swap( int a, int b) int tmp; tmp=a; a=b; b=tmp;void main( void ) int a=23, b=7; if(a>b) swap(a,b); printf("%d, %dn", a, b );3#include <stdio.h>void main( void ) short a=2,4,6,8,10,12, *p, *k; p=a;k=&p; printf("%d,", *(P+); printf("%d,", * *k);4#include <stdio.h>void main( void ) int num=1,3,5,7, s=1,i, *p=num; for(i=0;i<3;i+) s*=*(p+i); printf("%dn", s);5#include <stdio.h>void main( void ) int i,x; for(i=1,x=1;i<=20;i+) if(x>=10) break; if(x%2=1) x+=5; continue; x-=3; 答 题 勿 超 装 订 线-装-订-线- printf("%d,%dn",x,i);得分四、程序填空题(共有10空,每空2分,共20分)请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。1. 从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出“它是闰年”,否则输出“它不是闰年”。已知符合下列条件之一者是闰年:¡ 能被4整除,但不能被100整除。¡ 能被400整除。#include <stdio.h>void main() int year, flag;printf("Enter year:");scanf("%d", );if ( ) flag = 1; else flag = 0; if ( ) printf("它是闰年n"); else printf("它不是闰年n"); 2. 编程判断m是否为素数,已知0和1不是素数。 #include <stdio.h>void main()int n, flag; printf("Input n:"); scanf("%d", &n); flag = IsPrime(n);if ( )printf("它是素数n"); else printf("它不是素数n");int IsPrime(int m)int i, k; if (m <= 1)return 0;for (i= ; ; i+)k = ;if ( )return 0;return ; 得分五、程序设计题(每小题10分,共20分)请将正确答案填在答题卡上。答在试卷上不得分。1编程计算1!+2!+3!+10!的值。 2. 试编写三个子函数分别输入10个整数、利用冒泡法从小到大排序、输出排序结果(注:请勿修改给定的main函数)。void main( void ) int a10, SIZE=10; Input(a,SIZE); Sort(a,SIZE); Print(a,SIZE);答题卡得分得分院/系 年级 专业 姓名 学号 答 题 勿 超 装 订 线-装-订-线-一、单项选择题(每小题2分,共20分):1 2 3 4 5 6 7 8 9 10 得分二. 填空题:(每空1分,每小题2分,共20分)1_2_3_4_5_6_7_8_9_10_得分三. 程序分析题(每小题4分,共20分)1 2 3 4 5 得分四. 程序填空题(每空2分,共20分)1 2 3 4 5 6 7 8 9 10 得分五. 程序设计题(每小题10分,共20分)1.2.安徽大学20 08 20 09 学年第 二 学期C语言程序设计(B卷)考试试题参考答案及评分标准得分一、单项选择题(每小题2分,共20分):1 C 2 B 3 C 4 C 5 A 6 A 7 A 8 D 9 D 10 C 得分二. 填空题:(每小题2空,每空1分,共20分)1 下划线 下划线 2 真或1 3 MyChar >= && MyChar <= 4 将参数x指向的字符串写到参数y指向的文件中 写入文件的字符数 5 continue break 6 &x23 x32 7 ABCD A 8 常量 变量 9 (*ps).mark ps->mark (顺序可对调 )10 文本 二进制 得分三. 程序分析题(每小题4分,共20分)1 cdarm 2 23,7 3 2,4, 4 15 5 10,6 得分四. 程序填空题(每空2分,共20分)1 &year 2 year%4=0&&year%100!=0 | year%400=0 3 flag or flag=1 4 int IsPrime(int m); or # include <math.h> 5 flag or flag=1 6 2 7 i< m or i<=m/2 8 m % i 9 k = 0 or m%i=0 or ! k 10 1 得分五. 程序设计题(每小题10分,共20分)1参考答案1:#include <stdio.h>main()long term = 1,sum = 0; int i;for (i = 1; i <= 10; i+) term = term * i; sum = sum + term; printf("1!+2!+.+10! = %ld n", sum); 参考答案2:#include <stdio.h>main()long term ,sum = 0; int i, j;for (i = 1; i <= 10; i+) term = 1; for (j = 1; j <= i; j+) term = term * j; sum = sum + term; printf("1!+2!+10! = %ld n", sum); 2 参考答案:#include <stdio.h>void Input( int a10, int n) int i; printf("Input %d int: ", n); for( i=0; i<n; i+ ) scanf("%d", a+i);void Sort( int a, int n) int i, j, tmp; for( i=0; i<n-1; i+ ) for( j=0; j<n-i-1; j+ ) if( aj>aj+1 ) tmp=aj, aj=aj+1, aj+1=tmp;void Print( int *a, int n) int i; printf("The sorted number is : "); for( i=0; i<n; i+ ) printf(" %d ", ai ); printf("n");