东华理工大学2023年C语言程序设计专升本练习
本试卷为东华理工大学2023年C语言程序设计专升本练习,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计专升本练习
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址
#include <stdio.h>
#include <string.h>
char *scmp(char *s1, char *s2)
{
if(strcmp(s1,s2)<0) return(s1);
else return(s2);
}
main()
{
int i;
char string[20], str[3][20];
for(i=0;i<3;i++) gets(str[i]);
strcpy(string,scmp(str[0],str[1]));
/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
printf("%s\n",string);
}
若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
( C )
2、下面各语句行中,能正确进行字符串赋值操作的语句是______。
( D )
3、下列对程序解决问题的过程描述中,哪项是正确的( )
( D )
4、设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是 int a[10]= {0,1,2,3,4,5,6,7,8,9 },*p=a;
( C )
5、设以下变量均为int类型,表达式的值不为7的是________。
( C )
6、表达式18/4*sqrt(4.0)/5值的数据类型是________。
( A )
7、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
( C )
8、在位运算中,操作数每右移两位,其结果相当于________。
( A )
9、设有定义 double a[10],*s=a; 以下能够代表数组元素a[3]的是______。
( D )
10、有以下程序:
voidf(int *x,int * y)
{
int t;
t= *x;
*x= *y;
*y=t;
}
main()
{
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;
q=&a[7];
while(p)
{
f(p,q);
p++;
q--;
}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是______;
( B )
11、有下列程序:
#include<stdio.h>
main()
{
int a=6,b=7,m=1;
switch(a%2)
{
case 0:m++;
break;
case 1:m++;
switch(b%2)
{
defaut:m++;
case0:m++;
break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是________。
( B )
12、以下程序的输出结果是________。
# define SQR (X) X*X
main( ) {
int a=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
( A )
13、有以下程序
main()
{
int i=0,s=0;
do
{
if(i%2)
{
i++;
continue;
}
i++;
s+=i;
}
while(i<7);
printf("%d\n",s);
}
执行后输出的结果是______。
( C )
14、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
( A )
15、以下答案中不是c语言最基本数据类型的是________。
( B )
16、二维数组a有m行n列,则在a[i][j]之前的元素个数为________。
( A )
17、以下选项中不合法的标识是________。
( A )
18、在下列程序段中,枚举变量c1,c2的值依次是________。
enum color
{
red,
yellow,
blue=4,
green,
white
}
c1,c2;
c1=yellow;
c2=white;
printf("%d,%d\n",c1,c2);
( B )
19、写出下列程序段运行结果________。 unsigned int a=3,b=10;
printf("%d\n",a<<2|b==1);
( A )
20、当定义一个结构体变量时,系统分配给它的内存是________。
二、填空题 (共10题,每题2分,共计20分)
1、有以下程序
#include <stdio.h>
#include <string.h>
void fun(char*str)
{
char temp;
int n,i;
n=strlen(str);
temp=str[n-1];
for(i=n-1;i>0;i--) str[i]=str[i-1];
str[0]=temp;
}
main()
{
char s[50];
scanf("%s",s);
fun(s);
printf("%s\n",s);
}
程序运行后输入:abcdef<回车>,则输出结果是________。
2、int a = 0; a+=(a=8); 求a的最后结果
3、实参与形参占用独立的( )
4、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
5、若有"int a[3][2]={{1,2},{3},{4,5}};",则a[1][1]的值是________。
6、执行下面程序段后, k 值是________。
k=1;
n=263;
do
{
k*=n%10;
n/=10;
}
while(n);
7、int a,b;与a*=5-b;等价的赋值语句是________。
8、当运行以下程序时,从键盘输入1 2 3 4 5 -1<cr>, 则下面程序的运行结果是________。
#include <stdio.h>
main()
{
int k = 0, n;
do
{
scanf("%d", &n);
k += n;
}
while (n != -1);
printf("k=%d n=%d\n", k, n);
}
9、下面程序的功能是计算1-3+5-7+...-99+101 的值,请分析程序填空。
#include<stdio.h>
main()
{
int i,t=1,s=0;
for(i=1;i<=101;i+=2)
{
【1】________;
s=s+t;
【2】________;
}
printf("%d\n",s);
}
10、结构化设计中的三种基本结构是 顺序,选择,_____。
三、编程题 (共3题,每题0分,共计40分)
1、编写函数 void del(char *s,char c),其功能是在 s 所指字符串中删除与变量 c 相同的 字符,并设计主函数实现: (1)从键盘输入字符串和指定被删除的字符; (2)调用 del()函数实现删除操作; (3)输出删除后的字符串。 说明:不允许使用除 gets和 puts之外的任何字符串处理库函数。
2、编写程序:创建一个长度为n的链表,然后反向输出该链表。
3、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。(提示:用数组存放成绩数据)
相关标签:
- C语言
- 东华理工大学
- 专升本练习