c语言试题1有答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题(每题2分,15小题,共30分)
1.C语言源程序是由组成的。
A) 过程B) 函数C) 子程序D) 主程序和子程序
2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是。
A) 有零个或多个输入B) 有零个或多个输出
C) 有穷性D) 可行性
3.以下选项中合法的C语言标识符是。
A) long B) _2Test C) 3Dmax D) A.dat
4.下列转义字符中错误的是。
A) '\000' B) '\14' C) '\x111' D) '\2'
5.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。
A) 语法错误B) f为5.0 C) f为0.0 D) f为2.0
6.若变量a,b已经正确定义并赋值,符合C语言语法的表达式是。
A) a2+b B) a*a+b C) a×a+b D) a·a+b
7.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是。
A) 132↙B) 1,3,2↙
C) a=1b=3c=2↙D) a=1,b=3,c=2↙
8.若 w=1,x=2,y=3,z=4,则条件表达式w<x ?w : y<z ?y : z的值是。
A) 4 B) 3 C) 2 D) 1
9.设int a=0,b=0,m=0,n=0;则执行(m = a==b)||(n = b==a)后m和n的值分别是。
A) 0,0 B) 0,1 C) 1,0 D) 1,1
10.以下for循环的执行次数是。
for (x=0,y=0; (y=123)&&(x<4);x++) ;
A) 无限循环B) 循环次数不定C) 4次D) 3次
11.下面程序段的输出结果是。
char a[7]="abcdef";
char b[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);
A) B) \0 C) e D) f
12.有以下程序:
char f(char x , char y) { if(x>y) return y;
else return x;
}
void main()
{ int a=’9’,b=’8’,c=’7’,d=’6’;
printf(“%c\n ”,f(f(a,b),f(c,d)));
}
程序的执行结果是 。
A) 9 B) 8 C) 7 D) 6
13.若有宏定义#define MOD(x,y) x%y ,则下面程序段执行后的输出结果是 。
int z,a=15; float b=100;
z=MOD(b,a);
printf("%d\n",z++);
A) 11 B) 10 C) 6 D) 有语法错误
14.sizeof(float)是 。
A) 一种函数调用
B) 一个整型表达式 C) 一个不合法的表达式 D) 一个浮点表达式
15.以“只读”方式打开文本文件a:\aa.dat,下列语句中 是正确的。
A) fp=fopen(“a:\\aa.dat “,“ab “); B) fp=fopen(“a:\aa.dat “,“a “);
C) fp=fopen(“a:\aa.dat “,“wb “); D) fp=fopen(“a:\\aa.dat “,“r “);
二、填空题(每空1分,20小空,共20分)
1.函数体一般包括 和 两部分。
2.字符常量使用一对 界定单个字符,而字符串常量使用一对 来界定若干个字符的序列。
3.数学式子bc
ae 3的C 语言表达式为 。
4.已知x 是一个四位十进制数,则它的百位数的表达式是 ,则它的十位数的表达式是 ,则它的个位数的表达式是 。
5.语句printf("s%s","mall");的输出结果为 。
6.已知x 、y 分别为a 、b 、c 中的最大、最小值,求a 、b 、c 中中间值的表达式为 。
7.判断变量a 、b 、c 的值是否是等差数列中连续三项的表达式为 。
8.若声明char a[]="windows" , b[]="9x";则执行语句printf("%s",strcat(a,b));的输出结果为 。
9.被调用函数执行结束时,此函数中定义的 类型的变量不被释放。
10.设 int a [10]={1,2,3};则*(a+3)的值是 。
11.设
struct student
{ int no;char name[12];
char sex;float score[4];
}stu1;
在程序执行时,系统为stu1分配个字节的内存空间。
12.C语言函数返回类型的默认定义类型是。
13.若x=0123,则表达式(5+(int)(x))&(~2)的值是。
14.表达式((4|1)&3)的值为。
15.将文件指针移到文件开始的函数是,将文件指针移到文件结束的函数是。
三、综合题(每题6分,5小题,共30分)
1.写出下面程序执行后的运行结果。
#include <stdio.h>
void main()
{ int i,j,m,n;
i=8; j=10; m=++i; n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
2.写出下面程序执行后的运行结果。
#include <stdio.h>
void main()
{ int a,b,c;
a=10;b=20;c=30;
a=(--b<=a)||(a+b!=c);
printf("%d,%d\n",a,b);
}
3.写出下面程序的运行结果。
#include <stdio.h>
void main()
{
int a=10,y=0 ;
do {
a+=2 ; y+=a ;
if (y>50) break ;
} while (a=14);
printf("a=%d y=%d\n",a,y);
}
4.下面函数为:求出数组中的最大数和次最大数,并把最大数和数组中的第0个元素对调,把次最大数和数组中的第1个元素对调;判断程序中的正误,并改正错误。
#define N 20
void fun(int a[N],int n)
{
int k , m1 , m2 , max1, max2 ,t ;
max1 = max2 = a[0] ;
for (k=1 ; k<n ; k++)
if (a[k]>max1) {
max2=max1 ; m1=m2 ;
max1=a[k] ; m2=k ;
}
else if (a[k]>max2) {
max2=a[k] ; m2=k ;
}
t = a[0] , a[m1]=a[0], a[m1]=t ;
t = a[1] , a[m2]=a[1], a[m2]=t ;
}
5.设a、b、c为三角形三条边长,以下程序用于判断a、b、c能否构成三角形,若能输出YES,否则输出NO,请填(2)空使程序完整。
#include <stdio.h>
void main()
{ float a,b,c;
scanf("【1 】",&a,&b,&c);
if(【2 】) printf("YES\n");
else printf("NO\n");
}
四、编程题(每题10分,2小题,共20分)
1.常见的钟表一般都有时针和分针,在任意时刻时针和分针都形成一定夹角;现已知当前的时刻,编程求出该时刻时针和分针的夹角(该夹角大小≤180°);输入:当前时刻值,格式为“小时:分”,例如:11:12。
2.计算500~800区间内素数的个数cnt,并按所求素数的值从大到小的顺序, 再计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数 ... 的值sum。
(素数为只能被1和自己整除的数,也称为质数)
西北工业大学考试试题(B卷)答案
一、单项选择题(每题2分,15小题,共30分)
评分标准:
题号答案题号答案题号答案
1 A 6 C 11 C
2 D 7 D 12 D
3 C 8 B 13 A
4 A 9 B 14 B
5 D 10 C 15 D
阅卷说明:错画叉(),对画钩(),合计本题得分并记录在得分栏上
二、填空题(每空1分,20空,共20分)
评分标准:
题号答案备注
1 函数
2 字母或下划线仅有字母、下划线算错
3 32
4 1.0/2.0*(a*x+(a+x)/(4*a)) 可能还有其他写法(需判断)
5 8
2
6 4.0 4算对
7 函数函数调用
8 x<0&&y<0||x<0&&z<0||y<0&&z<0 可能还有其他写法(需判断)
9 gets(S1); 分号不写算对,S1小写算对
10 7
11 54321
654321
12 0
a[2][1]
13 实参变量的值或值
实参数组的起始地址或地址表示“值”的说法均算对
表示“地址”的说法均算对
14 auto 自动
15 0
16 24 3*sizeof(double)算对
阅卷说明:错画叉(),对画钩(),合计本题得分并记录在得分栏上
三、综合题(每题6分,5小题,共30分)
评分标准:
题号答案
1 7 11 14 21 2
2 28
评分标准在相应位置上答对1个数给1分,答错1个数减1分
2 8,17
评分标准仅答对8给3分,仅答对17给3分,少写或写错逗号减1分3 AABD
评分标准第1、4个字母答对给3分,第2、3个字母答对给3分
4 char s1[30],s2[]="world" 错在s1的定义上
s1[i]='\0'; 错在s1的下标上
return ; 错在给了返回值上
评分标准每个错误2分,答对给,答错减
5 k=0
i
stu[k].name, stu[k].age 次序错减1分
评分标准每个空2分,答对给,答错减
阅卷说明:每个细节小分错画叉(),全错画一个叉(),全对画一个钩(),且在每个小题旁边写上该小题得分,合计本题得分并记录在得分栏上
四、编程题(每题10分,2小题,共20分)
1.参考程序
#include <stdio.h>
void main()
{long i;double s=1.0,n=2;
for(i=1;i<=10000;i++)
{
s=s*n*n/((n-1)*(n+1));
n+=2;
}
printf("PI=%11.9lf\n",s*2);
}
评分标准:
项目评分细节分值
1 main函数及#include 1分
2 变量定义1分
3 循环语句1分
4 循环语句结束条件1分
5 S计算式2分
6 n值增量计算1分
7 PI结果表达式s*2 1分
8 printf输出2分
阅卷说明:每个细节错画叉(),对画钩(),半对画半钩(),叉和钩的总数应为8个,且在该题右上角写上该题得分。
四、编程题 2.参考程序
#include <stdio.h>
#define N 5
void sort(int a[]);
void main()
{int a[N],i;
for(i=0;i<N;i++) scanf("%d",&a[i]);
sort(a);
for(i=0;i<N;i++) printf("%d ",a[i]);
}
void sort(int a[])
{int i,j,p,t;
for(i=0;i<N-1;i++)
{p=i;
for(j=i+1;j<N;j++)
if(a[j]>a[p])p=j;
t=a[i]; a[i]=a[p]; a[p]=t;
}
}
评分标准:
项目评分细节分值
1 main函数及变量定义1分
2 主函数输入2分(循环1分、scanf输入1分)
3 主函数调用1分
4 主函数输出2分(循环1分、printf输出1分)
5 sort函数及变量定义1分
6 排序2分
7 大到小1分
阅卷说明:每个细节错画叉(),对画钩(),半对画半钩(),叉和钩的总数应为7个,且在该题右上角写上该题得分。