辽宁中医药大学2022年C语言期末题库
本试卷为辽宁中医药大学2022年C语言期末题库,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末题库
一、单项选择题 (共20题,每题2分,共计40分)
( D )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
( D )
2、下列程序的输出结果是________。
char *p1="abcd", *p2="abcd", str[50]="xyz"; strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
( B )
3、已知char x[]="hello", y[]={ 'h','e','a','b','e' }; 则关于两个数组长度的正确描述是________。
( A )
4、以下叙述中正确的是______。
( C )
5、设x、y、z、t均为int型变量,则执行以下语句后,t的值是________。 x=y=z=l; t=++ x | | ++ y && ++ z;
( B )
6、一个int型变量,在程序中多次频繁使用,最好定义它为________。
( A )
7、下列哪个是c语言的有效标识符
( A )
8、若要对a进行++运算,则a应具有下面说明
( D )
9、有以下程序:
#include <stdio.h>
main()
{
int x=1, y=0;
if(!x)y++;
else if(x==0) if(x)y+=2;
else y+=3;
printf("%d\n", y);
}
程序运行后的输出结果是______。
( D )
10、下列有关格式输入函数scanf的叙述中正确的是________。
( B )
11、下列关于字符串的说法中错误的是________。
( B )
12、有如下程序段int *p,a=5,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为______。
( B )
13、有如下程序
#define N 3
#define M N+2
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是______。
( D )
14、有以下程序
#include <stdio.h>
main()
{
struct stu
{
char name[9];
char sex;
double score[2];
}
;
struct stu a={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
( C )
15、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
( B )
16、程序必须在有限的步骤、有限的时间内执行完毕,指的是算法的( )特点
( B )
17、下列运算符中,优先级最低的是________。
( B )
18、有如下程序
#define N 3
#define M N+1#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是______。
( C )
19、经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为________。 char x=65; float y=7.3; int a=100; double b=4.5;
( D )
20、以下程序段中,变量 c 的二进制值是________ char a=2,b=4,c; c=a+b<<2;
二、判断题 (共10题,每题2分,共计20分)
( T )
1、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用
{
}
括起来组成一个复合语句。
( F )
2、函数的形参都属于全局变量。
( T )
3、一个源程序可使用多个文件包含命令,但一个文件包含命令只能包含一个文件。
( T )
4、无论哪种循环语句,都必须给出循环结束条件。
( T )
5、定义二维数组时,如果对全部元素赋初值,则可以省略行数。
( F )
6、已有定义:char a[]="xyz",b[]={'x','y','z'};则数组a 和b 的长度相同
( F )
7、定义char *string= "string? "是将字符串的值赋给指针变量string 。
( F )
8、当函数的实参与形参同名时,它们将共占内存单元。 ( )
( T )
9、c语言函数默认的返回值类型是 int 。( )
( F )
10、C 语言是一种非结构化程序设计语言。
三、填空题 (共5题,每题4分,共计20分)
1、c语言中与指针有关的两个运算符是&与________。
2、设a=5,b=2,则表达式"!a+b"的值是________。
3、已知"float a=3.5;int b=12;",则算术表达式"(int)(a+b/5)"的值是________。
4、结构化程序三种结构为________。
5、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2; swap(a,2);
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序中给指针p分配三个double型动态内存单元,请填空。
#include <stdlib.h>
main ( )
{
double *p;
p=(double *) malloc( ________);
p[0]=1.5;
p[1]=2.5;
p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
2、程序的结果是:
#include<stdio.h>
void main()
{
int i,j,x=0;
for(i=0;i<2;i++)
{
x++;
for(j=0;j<=3;j++)
{
if(j%2) continue;
x++;
}
x++;
}
printf("x=%d",x);
}
3、以下程序运行的结果为()
#include <stdio.h>
int d = 1;
fun(int p)
{
int d = 5;
d += p++;
printf( "%d,", d);
}
void main()
{
int a = 3;
fun(a);
d += a++;
printf( "%d\n", d);
}
4、下面程序的运行结果是________。
main()
{
int a[2][3]={{1,2,3},{4,5,6}}, int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)printf("%5d",b[i][j]);
printf("\n");
}
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:求100之内的素数。
2、给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。 输出格式: 在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。 输入样例: 3 Programming in C 21.5 Programming in VB 18.5 Programming in Delphi 25.0 输出样例: 25.00, Programming in Delphi 18.50, Programming in VB
3、从键盘上输入一个字符串, 计算字符串里有多少个空格、小写字母、大写字母、数字。
相关标签:
- C语言
- 辽宁中医药大学
- 期末题库