C语言2019高考模拟题含答案
2019年C语言考试试题带答案

2019年C语言考试试题带答案1、设int a=2,b;则执行b=a&&1;语句后,b的结果是( )A.0B.1C.2D.32.逗号表达式(a=3*5,a*4),a+15的值是( )A.15B.60C.30D.753. 在以下运算符中,优先级最高的运算符是__________A) , B) [ ] C) && D) +=4. 在C语言中,逻辑值“真”用__________表示。
A) true B) 大于0的数C) 非0的整数D) 非0的数5.C语言中,逻辑“真“等价于( )。
A、大于零的数B、大于零的整数C、非零的数D、非零的整数6.假设在程序中a,b,c均被定义为整型,并且已赋大于1的值,则下列能正确表示代数式1/abc的表达式是( )。
A、1/a*b*cB、1/(a*b*c)C、1/a/b/(float) cD、1.0/a/b/c7、以下标识符中,不能作为合法的C用户定义标识符的是:( )A .a3_b3 B.void C._123 D.abc8.若要表示if( a不等于0 )这一关系式,则能正确表示这一关系的表达式为if (__________)A) a<>0 B) !a C) a=0 D) a9、有以下程序main(){int a,b,d=25;a = d/10 & (-1);b = a && (-1);printf("%d,%d\n",a,b);}程序运行后的输出结果是A 6,1B 2,1C 6,0D 2,010.若定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用()。
A)scanf("%f",&a); B) scanf("%5.2f",a);C) scanf("%6.2f",&a); D) scanf("%f",a);11.下面程序段___x=3;do{y=x--;if(!y){printf("x");continue;}printf("#");}while(1<=x<=2);A) 将输出## B) 将输出##*C) 是死循环 D) 含有不合法的控制表达式12、两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是( )main ( ){int x;scanf(″%d″,&x);if(x++>5) printf(″%d″,x);else printf(″%d\n″,x-1);}A.7和5B.6和3C.7和4D.6和413.合法的数组定义是 ( )A、int a[]="string";B、int a[5]={0,1,2,3,4,5};C、vhst s="string";D、char a[]={0,1,2,3,4,5};14、定义如下变量和数组,则输出结果是( )。
电大《C语言程序设计》2019-2020模拟试卷及答案

《C语言程序设计》2019-2020模拟试卷及答案一、单项选择题。
把合适的选项编号填写在括号内。
1.不符合C语言规定的复合语句是()。
DA.{} B.{;} C.{x=0;} D.{y=10}2.C语言中的选择类语句有两条,它们是()。
AA.if和switch B.if和else C.switch和case D.else和case3.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。
AA. mainB. MAINC. nameD. function4. 在C语言程序中,多行注释语句使用的开始标记符为()。
BA. //B. /*C. */D. **5. 用于输出表达式值的标准输出函数是()。
CA. scanf()B. print()C. printf()D. output()6. 在printf()函数调用的格式字符串中,每个格式符的先导字符为()。
BA. #B. %C. $D. @7. 由C语言源程序文件编译而成的目标文件的扩展名为( )。
CA. cppB. exeC. objD. C8. 由C语言目标文件连接而成的可执行文件的扩展名为( )。
BA. cppB. exeC. objD. c9.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为()。
AA. warningB. errorC. warnD. err10. 在C语言中,表示换行符的转义字符为()。
CA. \fB. \rC. \nD. \m11. 字符串“a+b=12\n”的长度为()。
BA. 6B. 7C. 8D. 912. 要定义a和b为两个整型变量,则使用的定义语句为()。
BA. int a;b;B. int a,b;C. int a b;D. int a:b;13. 下列数值中最大值是()。
CA. 28/8B. 35/13C. 28%8D. 35%514. 下列数值中最小值是()。
DA. 28/8B. 35/3C. 28%8D. 35%315. 已知x的初值为5,则下列各表达式中的最大值为()。
2019年C语言考试试题带答案

2019年C语言考试试题带答案1、设int a=2,b;则执行b=a&&1;语句后,b的结果是( )A.0B.1C.2D.32.逗号表达式(a=3*5,a*4),a+15的值是( )A.15B.60C.30D.753. 在以下运算符中,优先级最高的运算符是__________A) , B) [ ] C) && D) +=4. 在C语言中,逻辑值“真”用__________表示。
A) true B) 大于0的数C) 非0的整数D) 非0的数5.C语言中,逻辑“真“等价于( )。
A、大于零的数B、大于零的整数C、非零的数D、非零的整数6.假设在程序中a,b,c均被定义为整型,并且已赋大于1的值,则下列能正确表示代数式1/abc的表达式是( )。
A、1/a*b*cB、1/(a*b*c)C、1/a/b/(float) cD、1.0/a/b/c7、以下标识符中,不能作为合法的C用户定义标识符的是:( )A .a3_b3 B.void C._123 D.abc8.若要表示if( a不等于0 )这一关系式,则能正确表示这一关系的表达式为if (__________)A) a<>0 B) !a C) a=0 D) a9、有以下程序main(){int a,b,d=25;a = d/10 & (-1);b = a && (-1);printf("%d,%d\n",a,b);}程序运行后的输出结果是A 6,1B 2,1C 6,0D 2,010.若定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用()。
A)scanf("%f",&a); B) scanf("%5.2f",a);C) scanf("%6.2f",&a); D) scanf("%f",a);11.下面程序段___x=3;do{y=x--;if(!y){printf("x");continue;}printf("#");}while(1<=x<=2);A) 将输出## B) 将输出##*C) 是死循环 D) 含有不合法的控制表达式12、两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是( )main ( ){int x;scanf(″%d″,&x);if(x++>5) printf(″%d″,x);else printf(″%d\n″,x-1);}A.7和5B.6和3C.7和4D.6和413.合法的数组定义是 ( )A、int a[]="string";B、int a[5]={0,1,2,3,4,5};C、vhst s="string";D、char a[]={0,1,2,3,4,5};14、定义如下变量和数组,则输出结果是( )。
c语言程序设计考试题及答案2019

c语言程序设计考试题及答案2019一、选择题(每题2分,共20分)1. 在C语言中,用于定义一个结构体类型的关键字是()。
A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述,错误的是()。
A. 函数可以没有返回值B. 函数可以没有参数C. 函数可以有多个返回值D. 函数可以有多个入口答案:D3. 在C语言中,下列哪个选项是正确的文件操作语句()。
A. FILE *fp; fp = fopen("example.txt", "r");B. FILE *fp; fp = open("example.txt", "r");C. FILE *fp; fp = read("example.txt", "r");D. FILE *fp; fp = openfile("example.txt", "r");答案:A4. 下列关于指针的描述中,错误的是()。
A. 指针可以存储地址B. 指针可以存储数据C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B5. C语言中,下列哪个选项是正确的数组定义方式()。
A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr = {1, 2, 3, 4, 5};答案:A6. 下列关于C语言中预处理命令的描述,正确的是()。
A. #include <stdio.h> 用于编译时包含标准输入输出库B. #define PI 3.14159 是一个宏定义C. #pragma 是编译器指令D. 以上都是答案:D7. 在C语言中,下列哪个选项是正确的循环语句()。
c语言题库及详解答案2019年版

c语言题库及详解答案2019年版在编写C语言题库及详解答案2019年版的内容时,我们需要确保题目覆盖了C语言的各个方面,包括基础语法、数据结构、指针、数组、函数、预处理指令、文件操作等。
以下是根据标题编写的题库内容:1. C语言基础1.1 写出C语言的基本数据类型及其取值范围。
1.2 解释C语言中的变量声明和初始化。
1.3 描述C语言中的运算符及其优先级。
2. 控制结构2.1 编写一个程序,使用if-else语句计算并输出两个整数的较大值。
2.2 描述循环语句(for、while、do-while)的用法,并给出一个使用每种循环的示例程序。
2.3 编写一个程序,使用switch语句根据输入的月份输出该月的天数。
3. 数组与字符串3.1 编写一个程序,实现对整型数组的排序。
3.2 解释字符串在C语言中的表示和操作。
3.3 编写一个程序,实现字符串的复制、连接、比较和长度计算。
4. 函数4.1 编写一个函数,实现两个整数的交换。
4.2 描述函数的递归调用,并给出一个使用递归的示例程序。
4.3 编写一个程序,使用函数实现学生成绩的统计和平均分计算。
5. 指针5.1 解释指针的概念及其在C语言中的应用。
5.2 编写一个程序,使用指针实现数组元素的逆序。
5.3 描述指针与数组的关系,并给出一个使用指针操作数组的示例。
6. 结构体与联合体6.1 编写一个程序,使用结构体定义学生信息,并实现学生信息的输入和输出。
6.2 解释联合体的概念,并给出一个使用联合体的示例程序。
7. 预处理指令7.1 描述预处理指令(#define、#include、#ifdef等)的用法。
7.2 编写一个使用宏定义的程序,实现数学表达式的计算。
8. 文件操作8.1 描述文件的打开、读写和关闭操作。
8.2 编写一个程序,实现文件的读取和写入操作。
9. 动态内存分配9.1 解释动态内存分配的概念及其在C语言中的应用。
9.2 编写一个程序,使用动态内存分配实现一个简单的内存管理器。
c语言考试题及答案2019

c语言考试题及答案20191. 选择题- 1.1 以下哪个选项是C语言中的关键字?- A. auto- B. auto- C. int- D. int- 答案:C- 1.2 以下哪个选项不是C语言中的运算符?- A. %- B. &&- C. ||- D. ==- 答案:D2. 填空题- 2.1 在C语言中,用于定义一个整型变量的关键字是____。
- 答案:int- 2.2 在C语言中,用于定义一个浮点型变量的关键字是____。
- 答案:float3. 简答题- 3.1 简述C语言中数组和指针的关系。
- 答案:在C语言中,数组名可以作为指向数组首元素的指针使用。
指针可以用于访问数组元素,也可以用于遍历数组。
- 3.2 解释C语言中函数原型声明的作用。
- 答案:函数原型声明用于告知编译器函数的返回类型、函数名以及参数的类型和数量,但不包含函数体。
它允许在函数定义之前调用函数。
4. 编程题- 4.1 编写一个C语言程序,实现计算两个整数的和。
- 答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("Sum is: %d\n", sum);return 0;}```- 4.2 编写一个C语言程序,实现将一个字符串反转。
- 答案:```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int i, j;char temp;for (i = 0, j = strlen(str) - 1; i < j; i++, j--) {temp = str[i];str[i] = str[j];str[j] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str); return 0;}```。
2019年C语言考试题(附答案)

2019年C语言考试题(附答案)2019年C语言考试题(附答案)1. 在 C 程序中,用___________表示逻辑值“真”。
A)1 B)非 0 的数 C)非 1 的数 D) 大于 0 的数2.设int c=5和int a; a=2+(c+=c,c+8,++c), 则a=__________A) 15 B) 14 C) 13 D) 163.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符________。
A)必须为字母或下划线。
B)必须为下划线。
C)必须为字母 D)可以是字母、数字和下划线中的任一种字符。
4、组成C语言程序的基本单位是()。
A) 过程 B) 子程序C) 函数 D) 主程序和子程序5.下列哪个标识符是C语言合法的标识符()。
A) a*b B) -xyzC) ba2 D) 5i6. 若已经定义了一个字符型变量为a,下面哪个表达式的含义跟其余表达式不同:A) a!=0 B) a!=’\0’ C) a D) !a7.在C语言提供的合法的关键字是()A、switchB、cherC、CaseD、sturct8. 若变量已正确说明为int类型,要给a,b,c输入数据,以下语句正确的是__________A) read(a,b,c); B) scanf(“%d%d%d”,a,b,c);C) scanf(“%D%D%D”,&a,%b,%c); D) scanf(“%d%d%d”,&a,&b,&c);9.已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为__________。
main(){char x,y;x=’0’;y=’9’;pirntf(“%d,%d\n”,x,y);}A)因输出格式不合法,输出错误信息 B)48,57C)0,9 D)48,5810.以下程序的输出结果是__________void main(){int a = 2,b = 5;printf(“a=%%%d,b=%%%d”,a,b);}A) a=%2,b=%5 B) a=2,b=5C) a=%%d,b=%%d D) a=%d,b=%d11. 以下程序段的输出结果是_____int x=3;do{ printf("%3d",x-=2;}while (!(--x));A) 1 B) 3 0C) 1 -2 D) 死循环12.有以下程序:#include “stdio.h”int a=3;main( ){int s=0;{int a=5;s+=a++;}s+=a++;printf("%d\n",s); }程序运行后的输出结果是( )。
全国计算机等级考试2019年二级C语言程序设计模拟试题3_真含答案与解析)-交互50

全国计算机等级考试2019年二级C语言程序设计模拟试题3(总分100, 做题时间120分钟)选择题(每题 1 分,共 40 分)1.下列叙述中正确的是()。
SSS_SINGLE_SELA栈与队列都只能顺序存储B循环队列是队列的顺序存储结构C循环链表是循环队列的链式存储结构D栈是顺序存储结构而队列是链式存储结构分值: 1答案:B栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。
为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构。
2.算法空间复杂度的度量方法是()。
SSS_SINGLE_SELA算法程序的长度B算法所处理的数据量C执行算法所需要的工作单元D执行算法所需要的存储空间分值: 1答案:D算法的空间复杂度是指执行这个算法所需要的存储空间,包括:①输入数据所占的存储空间;②程序本身所占的存储空间;③算法执行过程中所需要的额外空间。
3.设有栈 S 和队列 Q,初始状态均为空。
首先依次将 A, B, C, D, E, F 入栈,然后从栈中退出三个元素依次入队,再将 X, Y, Z 入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为()。
SSS_SINGLE_SELADEFXYZABCBFEDZYXCBACFEDXYZCBADDEFZYXABC分值: 1答案:B栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
队列是指允许在一端进行插入,而在另一端进行删除的线性表。
将 A, B,C, D, E, F 入栈后,栈中元素为 ABCDEF,退出三个元素入队,队列元素为 FED,将 X, Y, Z 入栈后栈中元素为 ABCXYZ,全部入队后,队列元素为 FEDZYXCBA。
4.某二叉树的前序序列为 ABCDEFG,中序序列为 DCBAEFG,则该二叉树的后序序列为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题1、不能把字符串“hello!”赋给数组b的语句是 ____________________A.char b[10]={'H','e','l','l','o','!'};B.char b[10];b="Hello!";C.char b[10];strcpy(b,"Hello!");D.char b[10]="Hello!";2、在宏定义“#define PI 3.14159”中,用宏名PI代替一个 ____________________A.单精度数B. 双精度数C.常量D.字符串3、下列说法错误的是 ____________________A.C语言中对二进制文件的访问速度比文本文件块B.C语言中随机文件以二进制代码形式存储数据C.语句“FILE fp;”定义了一个名为“fp”的文件指针D.C语言中的文本文件以ASCII码形式存储数据二、基本操作题30、下列给定程序中,函数fun的功能是:将N*N矩阵中元素的值按列向右移动一个位置,右边被移出矩阵的元素绕回左边第一列。
例如,N=3,有下列矩阵。
1 2 3 3 1 24 5 6 计算结果为 6 4 57 8 9 9 7 8请将正确内容填入答题卡相应位置,使程序得出正确答案。
#include "stdio.h"#define N 4void fun(int(*t)[N]){int i,j,x;for(i=0;i<N;i++) //for(i=0;i<____ 1 ____;i++){x=t[i][N-1];//x=____ 2 ____;for(j=N-1;j>=1;j--) //此处应为 1t[i][j]=t[i][j-1];t[i][0]=x;//____ 3 ____=x;}}main(){int i,j,t[][N]={21,12,13,24, 25,16,47,38, 29,11,32,54, 42,21,33,10};printf("The original array:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",t[i][j]);printf("\n");}fun(t);//____ 4 ____;printf("\nThe result is:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",t[i][j]);printf("\n");}}答案:for(i=0;i<N;i++) //for(i=0;i<____ 1 ____;i++) x=t[i][N-1];//x=____ 2 ____;t[i][0]=x;//____ 3 ____=x;fun(t);//____ 4 ____;四、程序分析题32、阅读程序,写出运行结果(1)下列程序的运行结果是 ____________________ #include "stdio.h"main(){int a,b,c;a=b=c=0;c=(a-=a-5),(a=b,b+5);printf("%d,%d,%d\n",a,b,c);}答案:0,0,5(2)下列程序的运行结果是 ____________________ #include "stdio.h"main(){int x[5]={2,4,6,8,10},*p,**pp;p=x;pp=&p;printf("%d",*(p++));printf("%3d\n",**pp);}答案:2 4(3)下列程序的运行结果是 ____________________ #include "stdio.h"main(){int i=2,j=3,k=4;if(i++==2 && (++j==3 || k++==3))k++;printf("%d %d %d",i,j,k);}答案:3 4 5(4)下列程序的运行结果是 ____________________#include "stdio.h"int fun(char *a,char *b){while((*a!='\0') && (*b!='\0') && (*a==*b)){a++;b++;}return (*a-*b);}main(){char a[10]="abc";char b[10]="ab";printf("%d",fun(a,b));}答案:99(5)下列程序的运行结果是 ____________________#include "stdio.h"void WriteStr(char *fn,char *str){FILE *fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}答案:end33、程序填空。
按照题目要求,将正确内容填入答题卡相应位置,使程序完整。
(1)已知字母A的ASCII码为65,以下是一个猜字母游戏,计算机随机产生A至Z之间的一个字母,用户有10次猜字母的机会。
第一次猜中得10分,第二次猜中的9分……。
第10次猜中得1分。
10次都猜不中得0分,如果猜错,计算机提示所猜字母是超前还是落后。
最后显示总得分。
#include "stdio.h"#include "stdlib.h"#include "time.h"int main(){int i,score=0;char ch,ch1,ch2;srand((unsigned)time(0));____ 1 ____;for(i=1;i<=10;i++){printf("\n请输入所猜的大写字母");scanf("%c%c",&ch1,&ch2);if(ch1>ch) printf("落后了");else if(ch1<ch) printf("超前了");else{printf("你猜中了");score=score+11-i;____ 2 ____;}}printf("\n你的得分为:%d %c",score,ch);return 0;}答案:ch=rand()%26+65;//____ 1 ____;break;//____ 2 ____;(2)结果为 13431 请根据结果7完成程序。
#include "stdio.h"struct NODE{int k; struct NODE *link;};int main(){struct NODE m[5],*p=m,*q=m+4;int i=0;while(p!=q){____ 3 ____;p++;q->k=i++;____ 4 ____;}____ 5 ____;for(i=0;i<5;i++) printf("%d ",m[i].k);return 0;}答案:p->k=++i;//____ 3 ____;q--;//____ 4 ____;p->k=i;//____ 5 ____;34、阅读程序,修改程序中的错误,不得增减行,也不得更改程序结构。
(1)输入10个正整数,计算其中的素数之和并输出结果(不考虑溢出情况),两个错误。
两个错误。
L01 #include "stdio.h"L02 int sum(int *b,int m)L03 { int s=0,is_prime(long);L04 while(m--)L05 if(is_prime(*b++)) s+=*b;L06 return s;L07 }L08 is_prime(long m)L09 { int k;L10 if(m<=1) return 0;L11 if(m==2 || m==3) return 1;L12 for(k=2;k*k<=m;k++)L13 if(m%k==0) return 0;L14 else return 1;L15 }L16 int main()L17 { int x[10],i;L18 for(i=0;i<10;i++) scanf("%d",x+i);L19 printf("sum=%d\n",sum(x,10));L20 }答案:L05 if(is_prime(*b++)) s+=*(b-1);//if(is_prime(*b++)) s+=*b;L08 int is_prime(long m)//is_prime(long m) 此处tc认为没有错L14 return 1; //else return 1;(2)求整数x的y次方的低3位值。
例如,5的6次方为12625,此值的低3位为625. 三个错误。
L01 #include "stdio.h"L02 long fun(int x,int y,long *p)L03 { int i;long t=1;L04 for(i=1;i<y;i++) t=t*x;L05 *p=t;L06 t=t/1000;return t; }L07 int main()L08 { long t,r; int x,y;L09 printf("\ninput x and y:");L10 scanf("%d%d",&x,&y);L11 t=fun(x,y,r);L12 printf("\n\nx=%d,y=%d,r=%ld,last=%ld\n\n",x,y,r,t); L13 }答案:L04 for(i=1;i<=y;i++) t=t*x;//for(i=1;i<y;i++) t=t*x; L06 t=t%1000; return t; } //t=t/1000;return t; }L11 t=fun(x,y,&r);//t=fun(x,y,r);五、程序设计题35、下列程序的功能是:建立具有n个节点的链表#include "stdio.h"#include "stdlib.h"typedef struct node{int data;____ 1 ____;}NODE;int main(){NODE *head,*p,*q;int i,n;printf("input n:");scanf("%d",&n);if(n<=0) head=NULL;else{p=____ 2 ____ =malloc(sizeof(NODE));scanf("%d",&q->data);for(i=1;i<n;i++){q=(NODE *)malloc(sizeof(NODE));____ 3 ____;scanf("%d",&q->data);p=q;}____ 4 ____;}printf("onput:\n");p=head;while(____ 5 ____ ){printf("%d",p->data);p=p->next;}return 0;}答案:struct node *next;//____ 1 ____;p=q=head=(NODE *)malloc(sizeof(NODE));//p=____ 2 ____ =malloc(sizeof(NODE)); p->next=q;//____ 3 ____;p->next=NULL;//____ 4 ____;while(p)//while(____ 5 ____ )。