中国计量大学C语言程序设计考题
本试卷为中国计量大学C语言程序设计考题,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计考题
一、单项选择题 (共20题,每题2分,共计40分)
( D )
1、下面是有关c语言字符数组的描述,其中错误的是________。
( D )
2、有以下程序(说明:字母a的ascil码值是65):
void fun(char*s)
{
while(*s)
{
if(*s%2)printf("%c",*s);
s++;
}
}
main()
{
char a[]="byte";
fun(a);
printf("\n");
}
程序运行后的输出结果是________。
( C )
3、为了避免嵌套的条件分支语句if-else的二义性,c语言规定:c程序中的else总是与( )组成配对关系。
( D )
4、若变量c为char类型,能正确判断出c为小写字母的表达式是________。
( D )
5、下列选项中不是字符常量的是________。
( C )
6、以下对二维数组a的正确说明是________。
( D )
7、若int i=10;
执行下列程序后,变量i的正确结果是________。 switch (i)
{
case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
( B )
8、以下数组定义中错误的是________。
( D )
9、char *s="\t\\name\\address\n"; 指针 s 所指字符串的长度为: 。
( D )
10、假定等级和分数有以下对应关系: 等级: a 分数: 85 ~ 100 等级: b 分数: 60 ~ 84 等级: c 分数: 60 以下 对于等级 grade 输出相应的分数区间,能够完成该功能的程序段是 __________.
( D )
11、下列对程序解决问题的过程描述中,哪项是正确的( )
( A )
12、在数制的转换中,正确的叙述是______。
( B )
13、请选出可以作为c语言用户标识符的一组标识符号
( A )
14、设有定义:char*c; 以下选项中能够使字符型指针c正确指向一个字符串的是________。
( A )
15、若x、y均是int型变量,则执行以下语句后的结果是________
for(x=1;x<5;x+=2)
for(y=1;y<5;y++)
{
printf("%2d",x*y);
if(y==4)printf("\n");
}
( C )
16、若有"double a; ",则正确的输入语句是________。
( D )
17、设有以下语句
typedef struct tt
{
char c;
int a[4];
}
cin;
则下面叙述中正确的是______。
( C )
18、下列语句输出结果是________。 long a=0xffff; int b=a; printf( "%d",b);
( B )
19、下列表达式中,可作为c合法表达式的是________。
( B )
20、有以下程序
struct stu
{
char num[10];
float score[3];
};
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.2f\n",sum);
}
程序运行后的输出结果是________。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、数组名作为函数参数,传送的是地址.
( T )
2、putchar函数可以向终端输出一个字符或字符型变量值。
( T )
3、对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同。
( F )
4、若变量定义为int x, y;,则x + y = 22是符合c语言语法的表达式。
( T )
5、对于如下的switch语句(使用break)的一般形式,其执行流程是:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段;
如果表达式的值与任何一个常量表达式的值都不相等,则执行 default 后的语句段,最后执行break语句,跳出switch语句。switch (表达式)
{
case 常量表达式1: 语句段1;
break;
case 常量表达式2: 语句段2;
break;
… case 常量表达式n: 语句段n;
break;
default: 语句段n+1;
break;
}
( T )
6、若变量已正确定义,执行以下程序段,输入0或者负数时,循环结束。
total = 0;
scanf ("%d", &score);
while(score > 0)
{
total = total + score;
scanf ("%d", &score);
}
( F )
7、c语言中,数字字符 '0' , '1' , '2' ,…, '9' 的ascii码按降序连续排列。
( F )
8、递归调用函数可以没有终止递归的条件。
( T )
9、字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串
( F )
10、c语言程序只能有一个文件。
三、填空题 (共5题,每题4分,共计20分)
1、字符读写函数____________是用于从磁盘文件中读出一个字符。
2、局部变量的作用域是从______的位置起,到函数结束止。
3、语句主要是实现次数循环结构,while语句主要是实现当型循环结构。
4、双精度型数据有效位为______位
5、有如下函数头: int max(int i,int j),则此函数有______个参数。
四、程序分析题 (共4题,每题5分,共计20分)
1、写出下列程序的运行结果。
#include "stdio.h"
main()
{
int a[]={1,2,3,-4,5};
int m,n,*p;
p=&a[0];
m=*(p+1);
n=*(p+4);
printf("%d %d %d ",*p,m,n);
}
2、有1020 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请分析程序填空。
#include <stdio.h>
main()
{
int day, x1, x2;
day = 0;
x1 = 1020;
while (____1____)
{
x2 = ____2____;
x1 = x2;
day++;
}
printf("day=%d\n", day);
}
3、下面程序的功能是求1000 以内的所有完全数。说明:一个数如果恰好等于它的因子之和(除自身外) ,则称该数为完全数。例如: 6=1+2+3 。
#include<stdio.h>
main()
{
int a,i,m;
for(a=1;a<=1000;a++)
{
for( 【1】________;i<=a/2;i++)
if(!(a%i)) 【2】________;
if(m==a) printf("%4d",a);
}
}
4、以下程序输出的结果是 ________。
int ff(int n)
{
static int f=l;
f=f*n;
return f;
}
main()
{
int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:字符串排序。如下: 请输入3个字符串,每个字符串以回车结束!: b a t 排序后的结果为: a b t
2、给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。 输出格式: 在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。 输入样例: 3 Programming in C 21.5 Programming in VB 18.5 Programming in Delphi 25.0 输出样例: 25.00, Programming in Delphi 18.50, Programming in VB
3、输入5个数,求和并输出。要求编写求和的函数。
相关标签:
- C语言
- 中国计量大学
- 考题