重庆师范大学2022年C语言程序设计
本试卷为重庆师范大学2022年C语言程序设计,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计
一、单项选择题 (共20题,每题2分,共计40分)
( D )
1、能正确表示a和b同时为正或同时为负的逻辑表达式是________。
( D )
2、以下程序的输出结果是
main( )
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if (b>=10) break;
if (b%5==1)
{
b+=5;
continue;
}
}
printf("%d\n",a);
}
( A )
3、有以下程序
#inctude<stdio.h>
#include<stdlib.h>
main() {
int *a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;
*b=2,*c=3;
a=b;
printf("%d,%d,%d\n",*a,*b,*c);
}
程序运行后的输出结果是________。
( A )
4、有以下程序 struc stu
{
char name[10];
int num;
};
void f1(struct stu c)
{
struct stu b={"lisiguo",2042};
c=b;
}
void f2(struct stu *c)
{
struct stu b={"sundan",2044} ;
*c=b;
}
main( )
{
struct stu a={"yangsan",2041},b={"wangyin",2043} ;
f1(a);
f2(&b);
printf("%d %d\n",a.num,b.num);
}
执行后的输出结果是________。
( D )
5、在c语言中,以 作为字符串结束标志
( B )
6、若已定义实参数组 int a[3][4]= { 2,4,6,8,10 }; 则在被调用函数 f 的下述定义中,对形参数组 b 定义正确的选项是 __________.
( B )
7、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( A )
8、执行完语句int [] x= new int [25]; 后,则下列哪项说法是正确的
( B )
9、递归算法的执行过程一般来说可先后分成______和______两个阶段。
( A )
10、以下叙述中正确的是________。
( A )
11、设有声明语句:char a='\72'; 则变量a________。
( B )
12、下面程序的运行结果是________。
#include <stdio.h>
main() {
int a=1,b=10;
do
{
b-=a;
a++;
}
while(b--<0);
printf("a=%d,b=%d\n",a,b);
}
( A )
13、下列程序的运行结果是________。
#include<stdio.h>
void sub(int*s,int*y)
{
static int m=4: *y=s[m];
m--;
}
void main()
{
int a[]={1,2,3,4,5},k,x;
printf("\n");
for(k=0;k<=4;k++)
{
sub(a,&x);
printf("%d,",x);
}
}
( A )
14、以下程序的输出结果是 long fun(int n) {
long s;
if(n==1||n==2)s=2;
else s=n-fun(n-1);
return s;
}
main() {
printf("%ld\n",fun(3));
}
( D )
15、下面程序的输出结果是_______。
m1(int x)
{
int y;
y=x+x;
return(y);
}
m2(int a ,int b)
{
int z;
z=m1(a*b);
return(z);
}
main( )
{
int a=3,b=6,c;
c=m2(a ,b);
printf("%d",c);
}
( B )
16、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
( A )
17、以下正确的说法是:在c语言中________。
( D )
18、设有说明:char c; int x; double z; 则表达式c*x+z值的数据类型为____
( A )
19、下面程序的功能是将字符串s 中所有的字符'c'删除。
#include "stdio.h"
main()
{
char s[80];
int i,j;
gets(s);
for (i=j=0;s[i]!='\0';i++)if (s[i]!='c') ;
s[j]='\0';
puts(s);
}
( D )
20、在 C语言中,能代表逻辑值“真”的是()。
二、填空题 (共10题,每题2分,共计20分)
1、求主次对角线之和。
main()
{
static int a[ ][3]={9,7,5,1,2,4,6,8};
int i,j,s1=0,s2=0;
for(i=0;i<3;i++) for(j=0;j<3;j++)
{
if( ________ ) s1=s1+a[i][j];
if( ________ ) s2=s2+a[i][j];
}
printf("%d\n%d\n",s1,s2);
}
2、在c语言中,关系运算符中的"小于等于"表示为_______。
3、c语言中与指针有关的两个运算符是________与*。
4、以下程序的输出结果是________。
main()
{
int x;
printf("%d\n",(x=2*4,x+5));
}
5、执行下列的程序段后,正确的结果是_____________。
int i=5;
while( i = 1)i -- ;
printf("%d", i );
6、下面程序的功能是用―辗转相除法‖求两个正整数的最大公约数。请分析程序填空。
#include <stdio.h>
main()
{
int r, m, n;
scanf("%d%d", &m, &n);
if (m < n) ____1___;
r = m % n;
while (r)
{
m = n;
n = r;
r = ____2___;
}
printf("%d\n", n);
}
7、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2; swap(a,2);
8、C程序的运行需要经过______和链接两步进行。
9、有如下函数头: int max(int i,int j),则此函数有______个参数。
10、在scanf函数中,用符号______表示变量的地址。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:用结构体和函数处理学生成绩,学生信息包括:学号 姓名 3门课成绩 平均分 1)用input函数来输入数据和求各学生的平均成绩 2)用max函数来找平均分最高的学生 3)用print函数输出成绩最高学生的信息
2、求1+2!+3!+...+20!的和
3、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。
相关标签:
- C语言
- 重庆师范大学