C语言试题(第一学期)及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
min=a[0];
for(i=1;i<5;i++)
if(a[i]<min) { min=a[i]; __i=k_____ ;}
max=a[0];
for(i=1;i<5;i++)
if(a[i]>max) { max=a[i];___i=j_____ ;}
}
main()
{inta=2,i;
for(i=0;i<3;i++);
printf("\t%d", fun(a);
}
*结果为:7,8,9。
三.填空题(25分)
1.如果p是一个指针,那么*&p表示的含义是指针P所指向的内容,而&*p表示的含义是指针P所指向的内容的地址。
2.已知数组s为一有8个单元的整型数组,下面的语句的语句试图求出这8个单元的平均值,并用ave保存这个值;请补充完整下面的语句。
20.下面各语句行中,能正确进行赋字符串操作的语句行是C
A:char s[4][5]="abcd","123";B:chars[5]={‘a’,‘b’,‘c’,‘e’,‘f’};
C:char *s; s="abcd";D:char s[5]; s="abcd";
21.在一个C语言程序构成中,较完整的描述是D
6.如果inta[4]={1,2,3,4},*p=&a[2];执行p++;其*p+a[0]的值为D;
A:2B:3 C:4 D:5
7.设inta,b,c;且a=10;b=4;a/=b;则表达式(a/b?b+a:b-a)之值是C;
A:0.5 B:6; C:2;D:-2
8.对于inta[10];正确的赋值语句是__A;
if(array[j]>array[k] k=j;
t=array[k];array[k]=array[i];array[i]=t;
}
}
6.下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数,选择合适的句子填入该程序空格中。
main()
{inta[5],max,min,i,j,k;
14.for( ;3; );代表的意义是A;
A:死循环 B:不循环 C:循环3次 D:语法错误
15.对于表达式53/2&&!0和!(15>3||5<6-8)的逻辑值,分别是B;
A:0,1 B:1,0 C:0,0; D:1,1
16.有时需要使几种不同类型的变量存放到在一起,形成一个变量,这种变量,称为A;
2.C语言中,正确的字符与字符串表示方式为B;
A:char a=‘a’,b=“abc”;B:chara=‘a’,b[ ]=“abc”;
A:char a=“a”,b[]=“abc”;B:chara=‘a’,b[2]=“abc”;
3.若a是float型变量,b是int型变量,以下输入语句合法的是B;
A:scanf(“%6.2f%f”,&a,&b)B:scanf(“%8.1f%d”,&a,&b)
A:15B:16C:8D:6
11.intn=97;
switch(n/10-4)
{ case2: n=n+1;
case3: n=n*2;
case5: n=n-2;
case7: n=n+3;break;
default: n=n/2;
}
n的正确结果值是____D____
A:95B:96C:97D:98
12.已知inti=j=2;char*a="abcdefg", c;
_a[k]=max, a[j]=min;__________
printf(“\nTheposition of min is:%3d\n”,k);
printf(“The position of max is:%3d\n”,j);
for(i=1;i<5;i++)printf(“%5d\n”,a[i]);
{inta[3][3]={1,2,3,4,5,6,7,8,9};
int*p1=&a[1][2],*p2=a+2;
printf("%d, %d\n",*p1, *p2);
printf("%d, %d\n", *(++p2), a[2][2]);
}
输出为:
5.
main( )
{inti;
char *p,b[10];
A:*(a+2)=4;B:a=6;C:a+2=4;D:*(a+15)=4;
9.设intx,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是C;
A:4B:16C:32D:52
10.对于inta[ ][3]={1,2,3,4,5,6, 7, 8, 9,10}说明语句,
且有:数据元素a[1][2]+a[3][1]的值为____D_____;
intj,s[ ]={1,2,3,4,5,6,7,8},sum=0;
for(j=0;j<8; j++)sum=s[i]+sum;
ave=sum/8;
3.变量在程序使用中,其作用域可分为全局变量和局部变量。
4.打印如下图案,选择合适的句子填入该程序空格中。
0
000
00000
0000000
00000
000
A:结构体变量B:字符变量 C:整型变量 D:实数变量
17.设char w;intx; float y; double z;表达式w*x+z-y的值的数据类型为D
A:charB:intC:floatD:double
18.有以下程序段C
FILE *fp;
fp=fopen(“a1”,“r”);
其表示为
A:定义了一个普通指针,函数值给指针赋值。B:定义了一个文件a1
m=i++; n=++j;
printf(“m2=%d n2=%d”,m,n);
}
结果:m1=6n1=1m2=6n2=8
2.main()
{inta[20],b=1;
for(a[0]=b;b<=10;b+=2)
{ a[b]=b;
if(b>7) break;
b++; }
printf(“a=%d”,a[b]);
重庆理工大学考试试卷
考试科目:高级语言程序设计(C语言)(第一学期)A卷 共 页
班次姓名学号成绩
注:答题做在后面答题试卷上。
一.选择填空(选百度文库一个正确答案,将其对应字母填在横线上)(25分)
1.C程序中,unsignedintx;定义的变量取值范围为B;
A:0~255 B:0~65535 C:0~32767 D:0~2147483647
}
四.编写程序(20分)
1.通过键盘输入10整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。
#include<stdio.h>
voidmain()
{
inta[10],b[10],i,j=0,k=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
}
结果:a=10
3.
#include“stdio.h”
main( )
{charch;
scanf("%c",&ch);
if(ch>=’B’&&ch<=’M’)putchar(ch+32);
elseputchar(ch);
}
输入M,运行结果为:_m____;输入b,运行结果为:__b___
4.
main()
25.当调用函数时,如果实参是一个数组名,则向函数传送的是B
A:数组的首元素 B:数组的首地址
C:数组每个元素的地址 D:数组每个元素中的值
二.读下列程序,给出程序的运行结果(30分)
1.main()
{inti,j,m,n;
i=5; j=6; n=10;
m=++i; n/=j++;
printf(“m1=%d n1=%d”,m,n);
C:scanf(“%6.2d%d”,&a,&d) D:scanf(“%6.2f%c”,&a,&d)
4.如果i=1,执行j=++i;k=i++;其j、i和k的值是D;
A:2,2,2; B:1,2,3 ; C:1,1,1; D:2,3,2
5.在if(条件)语句执行时,当条件为D时C语言认为是“真”;
A:TRUE; B:.T .C:0D:非零值
执行c=*(a=a+3);c的值是____C______。
A.‘b’ B:‘c’C:‘d’D:‘e’
?13.阅读下列程序,结果是C
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("###\n");
A:语法有错误,不能编译B:输出***C:通过编译,但不能连接D:输出###
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
f=sum(a,n);
printf("%d",f);
voidmain()
{
ints(intx,inty);
inti,p=0;
for(i=1;i<=10;i++)
if(i%2==0)
p=s(p,i);
printf("%d",p);
}
ints(intx,inty)
{
inta;
a=x+y;
return(a);
}
(2)编程求一个n*n矩阵的主对角线元素求和的子函数,在主函数中输入n以及矩阵各元素的值(设该矩阵元素均为整型数据)。
p=“abcde”;
for(i=0;i<3;i++)
{ b[i]=*p; p++; }
b[i]= '\0';
printf(“%s”,b);
}
输出为:b=abc
6.
#include "stdio.h"
intfun(intx)
{inty=0;
staticz=3;
y++;
z++;
return(x+y+z);
sort( a,n);
printf("the sorted array:\n);
for(i=0;i<15;i++)printf("%d",a[i]);
}
voidsort(intarray[],intn)
{inti,j,k,t;
for(i=0;i<n-1;i++)
{ k=i;
for(j=i+1;j<n;j++)
for(i=3;i>=0;i--) __a(i)_______;
}
5.用选择法对数组为n个整数进行由大到小排序,选择合适的句子填入该空格中。
#definN 100
main()
{inti,a[N],n;
scanf("%d",&n);
voidsort(intarray[] ,intn);
for(i=0;i<n;i++)scanf("%d",&a[i]);
A: 由主程序与子程序构成B: 由多个主函数与多个子函数构成
C: 由主函数与子函数构成 D: 由一个主函数与多个子函数构成
22.C语言在程序开始执行时,其正确的描述是B
A: 由编写程序语句的顺序格式执行B: 在主函数main()开始处执行
C: 在第一个子函数处执行 D: 由人随机选择执行
*23.下列有关函数错误的描述是A
if(a[i]%2==0)
{
b[j]=a[i];
j++;
k++;
}
for(j=0;j<k;j++)
printf("%d ",b[j]);
printf("\n");
}
2.在两题中,可选择其中一题。
(1)编写一个累加求和的子函数,在主函数中调用其子函数,实现1~100中的偶数求和;
#include<stdio.h>
C:打开一个文件,该文件可读可写D:打开一个文件,该文件只能读不能写
?19.下面对数组的定义正确的是A
A:intn=10;intarray[n]; B:intarray(10);
C:intn;scanf(“%d”,&n);intarray[n];
D:intn;intarray[n];scanf(“%s”,array);
A: C语言中允许函数嵌套定义B: C语言中允许函数递归调用
C: 调用函数时,实参与形参的个数、类型需完全一致
D: C语言函数的缺省数据类型是int类型
*24.在C语言中,函数的返回值的类型是由D
A:在程序编译时决定 B:由调用该函数的主调函数所决定
C:由return的表达式的类型所决定 D:由定义该函数时指定的函数类型所决定
#include<stdio.h>
voidmain()
{
intsum(inta[][100],intn);
inta[100][100];
inti,j,f,n;
scanf("%d",&n);
printf("please input %d*%d integers: ",n,n);
for(i=0;i<n;i++)
0
#include<stdio.h>
voida(inti)
{intj,k;
for(j=0;j<7-i;j++)printf(“”);
for(k=0;__k<2i+1______;k++)printf(“0”);
printf(“\n”);
}
main()
{inti;
for(i=0;i<3;i++) __a(i)_______;
相关文档
最新文档