内蒙古科技大学2023年C语言专升本模拟
本试卷为内蒙古科技大学2023年C语言专升本模拟,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言专升本模拟
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、以下程序段给数组所有元素输入数据:
main()
{
int a[10],i=0;
while(i<10)scanf("%d",);
}
应在下划线处填入的是________。
( A )
2、c语言结构体类型变量在程序执行期间,________。
( C )
3、当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是________。
( D )
4、下列选项中正确的语句组是________。
( B )
5、若有以下定义 int x[10], *pt=x; 则对x数组元素的正确引用是________。
( A )
6、下列表示引用的方法中,( )是正确的。 已知:int m=10:
( D )
7、若有以下定义的语句
struct student
{
int age;
int num;
};
struct student stu[3]={{1001,20},{1002,19},{1003,21}};
main()
{
struct student *p;
p=stu;
…
}则以下不正确的引用是________。
( C )
8、各种运算符间的优先顺序从高到低是________。
( D )
9、有以下程序
main()
{
int i=0,s=0;
for(;;)
{
if(i==3‖i==5) continue;
if(i==6) break;
i++;
s+=i;
}
;
printf("%d\n",s);
}
程序运行后的输出结果是________。
( C )
10、下面程序段的运行结果是 char *s="abcde"; s+=2; printf("%d",s);
( A )
11、有以下程序:
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10,p++)printf("%d,",*p);
}
程序运行后的输出结果是________。
( A )
12、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是________。
#include<stdio.h>
void main()
{
int x;
scanf("%d", &x);
if(x++>5) printf("%d", x);
else printf("%d\n", x--);
}
( C )
13、若给定条件表达式(m)?(a++):(a--)则下列选项中和表达式m等价的是________。
( B )
14、以下程序运行后的输出结果是 _______ 。
main( )
{
int i=0,s=1;
for (;;)
{
if (i==5) break;
i++;
s+=i;
}
;
printf("%d\n",s);
}
( D )
15、对于64位系统,int类型能够表示的数的范围为
( C )
16、以下叙述中正确的是________。
( D )
17、已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中 不正确的是________。
( B )
18、执行下列语句后的结果为________。 int x=3,y; int *px=&x; y=*px++;
( B )
19、c语言程序中必须有的函数是________。
( B )
20、下面程序的功能是把316 表示为两个加数的和,使两个加数分别能被13 和11 整除。请选择填空。
#include <stdio.h>
main()
{
int i = 0, j, k;
do
{
i++;
k = 316 - 13 * i;
}
while (______);
j = k / 11;
printf("316=13*%d+11*%d", i, j);
}
二、判断题 (共10题,每题2分,共计20分)
( T )
1、逻辑运算符 && || ! 的运算顺序是 ! 优先于 && 优先于 || ( )
( T )
2、关系表达式的值是一个逻辑值,即"真"或"假",并且用0表示"假",用1表示"真"。
( T )
3、c语言对文件读、写之前必须先打开文件,在使用文件之后应关闭该文件。
( T )
4、计算机语言(computer language)是人与计算机之间通讯的语言。
( F )
5、c 语言中 , 字符串常量最后一个字符是结束标志 , 该结束符是'0' 。
( F )
6、char a="string"是合法的数组定义语句。
( F )
7、while循环语句的循环体至少执行一次.
( F )
8、定义在main 函数后的任何函数都需在main 中进行函数声明
( F )
9、若定义时,函数返回值类型为void ,函数仍然可有return 带回返回值。
( F )
10、c语言中,在一个函数内部可以定义另一个函数。
三、填空题 (共5题,每题4分,共计20分)
1、在循环中,continue语句与break语句的区别是:continue语句是语句的区别是:continue语句是 ________ ,break 是 ________ 。
2、设m=0,n=2,则表达式"!(m+n)"的值是________。
3、如果一个变量要在一个程序中的所有函数都能共享,则应该定义成为________。
4、数学表达式a<b<=c改写为c语言表达式是__________。注:表达式要在英文半角状态下按原表达式顺序书写,且表达式中不要留空格。
5、C语言函数是由函数首部和函数体两部分组成。其中,函数首部包括 函数类型、函数名和______。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序的输出结果是________。
main()
{
int x;
printf("%d\n",(x=2*4,x+5));
}
2、以下程序运行后的输出结果是 ________
#include <stdio.h>
main()
{
int a=1,b=7;
do
{
b=b/2;
a+=b;
}
while (b>1);
printf("%d\n",a);
}
3、执行下列的程序段后,正确的结果是_____________。
int i=5;
while( i = 1)i -- ;
printf("%d", i );
4、下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ascii码升序排序后输出。 例如,输入opdye,则应输出deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
int proc(char str[])
{
char c;
unsigned i,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j];
str[j]=str[i++];
str[i]=c;
}
}
void main()
{
char str[81];
system("cls");
printf("\nplease enter a character string:");
gets(str);
printf("\n\nbefore sorting:\n%s",str);
proc(str);
printf("\nafter sorting decendingly:\n %s",str);
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:用结构体数组,学生信息由学号、姓名,成绩组成, 数据如下:201513135157 张三 90 1)使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上 2)将学生中不及格学生的姓名显示出来 3)写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数
2、输出2000——2500年每一年是否闰年
3、任意输一行字符串(包括空格),求其长度(不用strlen函数)。
相关标签:
- C语言
- 内蒙古科技大学
- 专升本模拟