c语言知识学习模拟考卷.docx
- 文档编号:10302723
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:14
- 大小:45.86KB
c语言知识学习模拟考卷.docx
《c语言知识学习模拟考卷.docx》由会员分享,可在线阅读,更多相关《c语言知识学习模拟考卷.docx(14页珍藏版)》请在冰豆网上搜索。
c语言知识学习模拟考卷
扬州大学试题纸
名
姓
(0-0学年第二学期)
信息工程学院班(年)级课程C语言程序设计模拟试卷
题目
-一一
-二二
-三
四
五
总分
得分
阅卷人
得分
阅卷人
审核人
单项选择题(20分,每题1分)
1.下列表达式中,不能正确表达代数式
学含义的C语言表达式是(
A.x/a/b*y*2B.2*x*y/a/b
C.2*x*y/a*bD.x*y/b/a*2
2.若s是int型变量,则表达式s%2+(s-1)%2的值为()
3.若调用一个函数,且此函数中没有return语句,则表示该函数()°
A.没有返回值B.返回若干个系统默认值
C.返回一个用户所希望的函数值D.返回一个不确定的值
4•执行下列程序段后的输出结果是(
charstr[]={\t\bc\\Language\n\Og};
printf("%d\n",strlen(str));
A.12B.13C.14
5•以下程序的输出结果是()。
main()
{intx=1,y=2,z=3;
x=y--<=x||x+y!
=z;
printf(“%d,%d”,x,y);
D.16
}
A.0,1B.0,2
6•以下不是死循环的语句是(
A.inti=100;
while
(1){i=i%100+1;
B.for(;;);
C.intk=0;
do{++k;}while(k>=0);
D.ints=6;
C.1,1
)
if(i>100)break;}
D.1,2
while(s);--s;
A.inti=O,j=O;
(i=3,(j++)+i);
B.inti=1,j=0;
j=i=((i=3)*2);
C.inti=0,j=1;
(j==1)?
(i=1):
(i=3);
D.inti=1,j=1;i+=j+=2;
8.若有以下宏定义:
#defineN2
#defineY(n)((N+1)*n)
则执行语句“z=2*(N+Y(5));”后的结果为()。
A.语句有错误B.z=34C.z=70D.z无定值
9
1个所完
.下列程序是求1到100的累加和,其中有3个程序段能完成规定功能,有成的功能与其它程序不同,它是()。
A.s=O,i=O;while(i<=100)s+=i++;
B.s=0,i=1;while(i++<100)s+=i;
C.s=0,i=0;while(i<100)s+=++i;
D.s=O,i=O;while(++i<=100)s+=i;
10.凡在函数中未指定存储类别的变量,其隐含的存储类别是()。
A.自动(auto)E.静态(static)
C.外部(extern)D.寄存器(register)
11.已有定义intk=2;int*p1,*p2;且p1和p2均已指向变量k,下面不能
正确执行的赋值语句是()。
A.
B.p2=k;
C.p仁p2;
k=*p1+*p2
D.
k=*p1**p2;
inta[5],*p=a;
13.若有以下定义和赋值语句,则对b数组的第i行第j列(假设i,j已正
确说明并赋值)元素值的非法引用是()°
B.*(p[i]+j)
intb[2][3]={0},(*p)[3];p=b;
A.*(*(p+i)+j)
D.
C.*(p+i)+j
(*(p+i))[j]
14.设有说明“inta[4][4],(*p)[4]=a;”,以下与数组元素a[3][3]不等价表
示的是(
C.*(*(p+3)+3)
D.(*(*(a+3))+3)
15.若有以下定义,则数值不为3的表达式是()。
intx[10]={0,1,2,3,4,5,6,7,8,9},*p1;
B.
A.x[3]
p仁x+3,*p1++
C.p仁x+2,*(p1++)
D.p1=x+2,*++p1
16•以下程序的输出结果是(
#inelude
#inelude
main()
s1+=2,s2+=2;
printf(“%d\n”,stremp(s1,s2));
17.已有定义int(*p)();指针p可以(
#inelude
main(){structdate
{intyear,month,day;
}today;
printf(“%d\n”,sizeof(structdate));
}
A.6B.8C.10D.12
19•设有说明:
struct{
charname[15],sex;
intage;floatscore;
}stu,*p=&stu;
)o
B.scanf(“%s”,stu.name)
D.scanf(“%f”,p->score)
以下不能正确输入结构体成员值的是(
A.scanf(“%c”,&p->sex);
C.scanf(“%d”,&stu.age);
20.若有以下声明和语句:
intt[3][3],*pt[3],k;
for(k=0;k<3;k++)pt[k]=&t[k][O];
则表达式*(*(pt+1)+2)所引用的是(
C.t[1][2]
D.&t[1][2]
得分
阅卷人
审核人
、基本概念题(10分,每题1分)
1•C语言提供了四种基本的数据类型,它们是整型、实型、字符型
和。
2.若定义了intx;则将x强制转换成双精度类型应该写成。
3.表达式8.0*(1/2)的值为。
4.C语言规定,在一个源程序中,main函数的位置。
5.C语言中的标识符只能由字母、数字和下划线字符组成,且第一个字符
必须是。
6.若所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是。
7.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式是
(假设s[0][0]位于数组的第一个位置上)。
8.在C语言中,&运算符作为单目运算符时表示的是运算。
9.若要是下列程序段中指针变量p指向一个存储整型数据的存储单元,则
应填入。
int*p;
p=malloc(sizeof(int));
10.函数调用strcat(strcpy(str1,str2),str3)的功能是:
得分
阅卷人
审核人
三、写出程序运行结果(
分)
20分,每题4
1.【程序】
main()
{intx[]={0,1,2,3,4,5,6,7,8,9};
ints=0,i,*p;
p=&x[0];
for(i=0;i<=9;i+=2)s+=*(p+i);
printf(“%d\n”,s);
}
2.【程序】
#include
#inelude
voidfun(char*w,intm)
{chars,*p1,*p2;
p1=w;
p2=w+m-1;
while(p1 {s=*p1++;*p1=*p2--;*p2=s;} } main() {staticchara[]=”GFEDCBA”; fun(a,strlen(a)); puts(a); } 3•假设运行以下程序时,从键盘输入的是: Howareyou Goodmorning Helloworld 【程序】 #include"stdio.h" #include"string.h" voidmain() {inti; chars[80],str[3][80]; for(i=0;i<3;i++) gets(str[i]); strcpy(s,str[O]); for(i=1;i<3;i++) if(strlen(s) printf("%s%d",s,strlen(s)); } 4•【程序】 #include voidnum() {externintx,y; inta=15,b=10; x=a-b; y=a+b; } intx,y; main() {inta=7,b=5; x=a+b; y=a-b; num(); printf(“%4d%4d\n”,x,y); } 5.【程序】运行下面的程序,假设从键盘上输入值为3。 #include"stdio.h" main() {intj,k,n,temp; inta[6][6]; scanf("%d",&n); for(k=0;k for(j=0;j a[k][j]=k*n+j; for(k=0;k for(j=O;j {temp=a[n-j-1][k];a[n-j-1][k]=a[k][j];a[k][j]=temp; } for(k=0;k {for(j=0;j 得分 阅卷人 审核人 四、完善程序(12 分,每空1分) 是某一个数的平方数, 1•以下程序打印所有符合下列条件的3位正整数: 其中有两位数字相同。 如100、121等。 main() {inta,b,c,n,k; for(k=10;;k++) {n=⑴; if(n>999)⑵; a=n/100; b=⑶; c=n%10; if(! ((a-b)*(b-c)*(c-a)))printf(“\n%d,%d”,n,k); } } 2•下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1, 否则输出0。 main() {inti,x,y=1; scanf(“%d”,(_4)); for(i=2;i<=x-1;i++) if㈤ y=0; printf(“%d\n”,y); } 3.以下程序可把输入的十进制数以十六进制数的形式输出。 main() {charb[17]={“0123456789ABCDEF”}; intc[64],d,i=0,base=16; longn; printf(“Enteranumber: \n”); scanf(“%ld”,&n); do {c[i]=(7);i++;n=(8);} while(n! =0); printf(“Transmitenewbase: \n”); for(--i;i>=0;--i) {d=c[i];printf(“%c”,b[(9)]);} printf(“\n”); 4•以下程序可分别求出方阵a中两个对角线上元素之和。 #defineN6 main() {inta[N][N],i,j,k,pr1,pr2; for(i=0;i for(j=0;j pr1=pr2=0; for(i=0;i {pr1=(10)+(*(*(a+i)+i); k=(11); pr2=(12)+*(*(a+i)+k);} printf(“pr1=%d,pr2=%d\n”,pr1,pr2); } 得分阅卷人审核人 四、编程(共38分)要求输入n的值,输出序列之值。 2•定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数。 然后按顺序每5个数求出一个平均值,放在b数组中并输出。 3.某班30名同学1~30,考了5门课程1~5,要求编程输入该班所有考试成绩保存a[31][6]数组中,然后求出每门课程的平均成绩。 4.编程sum=1! +2! +3! +…+10! 之值。 要求: (1)使用函数调用技术,将求n! 之值编写为fac(n)函数。 (2)通过主函数调用fac函数实现题意。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 知识 学习 模拟 考卷