C语言设计(本)阶段练习一

合集下载

C语言程序设计练习题(含程序及参考答案)1

C语言程序设计练习题(含程序及参考答案)1

C语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用)1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。

#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。

#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。

C语言程序设计_第一阶段练习参考答案

C语言程序设计_第一阶段练习参考答案

江南大学现代远程教育第一阶段练习题考试科目:《C语言程序设计》第一章至第四章(总分100分)学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共20题,总分值40 ,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

)1. 有以下程序main(){ int i=1,j=1,k=2;if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()。

(2 分)A. 1,1,2B. 2,2,1C. 2,2,2D. 2,2,32. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是()。

(2 分)A. 6B. 0C. 2D. 13. 执行以下程序段后,变量a,b,c的值为()。

int x=11,y=10,a,b,c;a=(--x==y++)?--x:++y;b=x++; c=y; (2 分)A. a=10,b=10,c=9B. a=9,b=9,c=12C. a=9,b=9,c=11D. a=1,b=9,c=114. 以下程序的输出结果是用()表示。

main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);} (2 分)A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,115. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车> ,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()。

(2 分)A. scanf(“%2d%2d%2d”,&i,&j,&k);B. scanf(“%d %d %d”,&i,&j,&k);C. scanf(“%d,%d,%d”,&i,&j,&k);D. scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);6. 以下非法的赋值语句是()。

C语言程序设计_第一阶段练习参考答案

C语言程序设计_第一阶段练习参考答案

江南大学现代远程教育第一阶段练习题考试科目:《C语言程序设计》第一章至第四章(总分100分)学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共20题,总分值40 ,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

)1. 有以下程序main(){ int i=1,j=1,k=2;if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()。

(2 分)A. 1,1,2B. 2,2,1C. 2,2,2D. 2,2,32. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是()。

(2 分)A. 6B. 0C. 2D. 13. 执行以下程序段后,变量a,b,c的值为()。

int x=11,y=10,a,b,c;a=(--x==y++)?--x:++y;b=x++; c=y; (2 分)A. a=10,b=10,c=9B. a=9,b=9,c=12C. a=9,b=9,c=11D. a=1,b=9,c=114. 以下程序的输出结果是用()表示。

main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);} (2 分)A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,115. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车> ,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()。

(2 分)A. scanf(“%2d%2d%2d”,&i,&j,&k);B. scanf(“%d %d %d”,&i,&j,&k);C. scanf(“%d,%d,%d”,&i,&j,&k);D. scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);6. 以下非法的赋值语句是()。

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。

如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。

要事先准备好保存文件的目录,例d:\lx 目录。

在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。

设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。

C语言程序设计_习题大全(含答案)

C语言程序设计_习题大全(含答案)

C语言程序设计_习题大全(含答案) C语言程序设计_习题大全(含答案)C语言程序设计是计算机科学与技术领域中非常重要的一门课程,对于学习和掌握程序设计的基本原理和方法具有重要意义。

在学习这门课程过程中,习题的练习和掌握是至关重要的一环。

本文将向大家介绍一份包含答案的C语言程序设计习题大全,帮助读者拓宽思路,加深对C语言程序设计的理解。

第一章:基础知识练习习题1:请编写一个C程序,输出"Hello, World!"。

答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```习题2:请编写一个C程序,将两个整数相加并输出结果。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```第二章:条件语句练习习题3:请编写一个C程序,判断某年份是否为闰年。

答案:```c#include <stdio.h>int main() {int year;printf("请输入年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d年是闰年\n", year);} else {printf("%d年不是闰年\n", year);}return 0;}```习题4:请编写一个C程序,判断用户输入的整数是否为正数、负数或者零。

《C语言程序设计》综合练习试卷(一)

《C语言程序设计》综合练习试卷(一)

《C语言程序设计》综合练习试卷(一)试题一判断题 (每题1分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。

2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。

3.字符数组中字符串可以整体输入输出。

4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。

5.C语言中数组名是指针常量。

6.结构体类型中的各成员项数据类型可以不相同。

7.函数必须有返回值,否则不能使用函数。

8.C程序执行总是从第一个函数开始。

9.可以用关系运算符对字符串进行大小比较。

10.For循环只能用于循环次数已确定的场合。

试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。

1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。

int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6 B)*(p+6) C)*p+=5 D)p+510. 已知:int *p,m=5, n; 正确的程序段是A) p=&n; scanf(" %d",&p); B) p=&n; scanf(" %d", *p);C) scanf("%d",&n); *p=n; D) p=&n; *p=m;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。

C语言程序设计习题集及答案

C语言程序设计习题集及答案

基础知识一单项选择题(每题2分,共44分)1以下叙述正确的是___。

A C 程序基本组成单位是语句BC 程序每一行只能写一个语句C 简单C 语句必须以分号作为结束符D 注释语句可以嵌套2一个C 语言程序是从___开始执行的。

A 程序中第一个函数B 名为main 的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3请选出合法的C 语言赋值语句___。

A a=b=58B i++;C a=58,b=58D k=int(a+b);4下面标识符中,合法的用户标识符是___。

A 1abcB includeC a-b-c123D char 5以下所列的C 语言整形常量中,正确的是___。

A 0x10B 0976C 076LD 01ff 6C 语言中下列运算符的操作数必须为整型的是___。

A %B ++C /D =7设a 和b 均为int 型变量,则执行以下语句后的输出为___。

int a=20;int b=3;printf("%d\n ",a+=(b%=2));A 20B 21C 0D 238已知int i;,则执行语句i=2.6;后,i 的值为___。

A 2B 3C 2.6D 不确定9以下合法的字符常量为___。

A 'ab 'B '\482'C '\'D '\xaf '10若y 为int 型变量,则执行以下语句后,y 的值是___。

y=8;y+=y-=y*y;A 64B –56C –112D –4811以下合法的浮点型常量是___。

A e-3B 1.5e+2.4C 3.14e+2LD 3.14e +512设int 数据占用两个字节,float 数据占用四个字节,double 数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。

printf("%d ",sizeof(a*b)+2/5);A 4B 8C 6D 713设int 型占2个字节,且int i=-2;,则语句printf("%u ",i);的输出结果为___。

C语言程序设计练习一80306

C语言程序设计练习一80306

《C语言程序设计》练习一一、单项选择题1.下面转义字符中,表示字符串结束的是()A.\ rB.\ nC.\ 0D.\ f2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是()A.1个B.2个C.4个D.8个3.设有int x=2,y,z;执行z=y=x--;后,变量z的值是()A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是()A.%uB.%ldC.%xD.%o5.下面合法的if语句是()A.if(a=b) c++;B.if(a=<b) c++;C.ifi(a< >b) c++;D.if(a=>b) c++;6.结束while(表达式)循环的条件是()A.当表达式的值为0时B.当表达式的值不为0时C.当表达式的值为1时D.当表达式的值为非1时7.若有定义int a[3][5];则数组a在内存中占用的字节数是()A.8B.15C.16D.308.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是()A.charB.floatC.longD.int9.若有说明:int *p,m=5,n;以下正确的程序段是()A.p=&n;B.p=&n;scanf(〃%d〃,n); scanf(〃%d〃,*p);C.scanf(〃%d〃,&n);D.p=&n;p=n; *p=m;10.变量的指针,其含义是指该变量的()A.值B.地址C.名D.一个标志16.结构体是C提供的一种专门处理彼此相互有联系,数据类型()A.不一致的多个数据的数据结构B.不一致的单个数据的数据结构C.一致的多个数据的数据结构D.一致的单个数据的数据结构11.下面列出的位运算符中,表示按位与操作的是()A.~B.&C.^D.|12.设有说明:int x=0x03,y=3;表达式x&~y的值是()A.0B.1C.2D.319.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是()A.0B.1C.3D.513.设有说明:FILE *fp;char *filename=〃paper〃;对于fp=fopen(filename,〃rb+〃);语句,下面说法正确的是()A.打开名为filename的文件读写B.打开名为paper的文件读写C.打开名为filename的文件只读D.打开名为paper的文件只读114. 设有int a=3, b=-4, c=5;表达式(a<b)? a+b:(a-b,b+4,a-=b+4)的值是()A. –1B. 0C. 3D. 715. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d b=%d″,&a, &b);A. 2<CR>B. a=2 b=3<CR>C. a=2, b=3<CR>D. 2,3<CR>3<CR>16. 下面程序段的输出结果是()main(){ int s, p;s=p=5;p=++s;p++; ++p;printf(″%d\n″,p);}A. 5B. 6C. 7D. 817. 下列if语句中,有语法错误..的是()A. if(x>y);B. if(x=y) x+y;C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)D. if(x<y) {x++; y++;}18. 下面程序段执行后的输出结果是()int i=-1;if(i<=0) printf(″* * * * \n″);else printf(″%%%%\n″);A. ****B.%%%%C. %%%%cD. ****c19. 下面程序段的循环次数是()int k=2;while(k==0) printf(″%d″,k);k--; printf(″\n″);2A. 0次B. 1次C. 2次D. 无限次20. 下面程序段的输出结果是()a=100;while(a>120);a=a+1;printf(″%d″,a);A. 100B. 101C. 120D. 12121. 下面程序执行后,i的值是()main( ){ int a [5]={1,2,3,4,5},i=2printf(″%d″,a[i++]);}A. 1B. 2C. 3D. 422. 下面程序的输出结果是()main( ){ int i, x[3][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<4;i+=2) printf(″%d″, x[i][1]);}A. 5 1B. 5 2C. 8 2D. 9 323. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是()A. 由系统自动指定对应实参和形参是否共用存储单元B. 对应实参和形参各占一个独立的存储单元C. 对应实参和形参共用一个存储单元D. 可以由用户指定对应实参和形参是否共用存储单元24. 下面叙述中不.正确的是()A. 不同函数中可以使用相同名字的变量B. 形式参数是局部变量C. 在一个函数内部定义的变量只能在本函数范围内有效D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效25. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是()A. a[1][2]B. a[1]C. *(p+1*10+2)D. *(a[1]+2)326. 下面定义不正确...的是()A. struct starB. struct star{ {int id int id;char *name; char *name;} star1={1001, ″Moon″}; }; star1={1001, ″Moon″};C. structD. struct star{ {int id; int id;char *name; char *name;} star1={123, ″Sun″}; } star1;27. 下面各个位运算符的优先级从左到右依次升高的是()A. | ^ & >>B. ^ >> & ~C. << | ^ ~D. ~ | & >>28. 设有说明:int u=1, v=14;表达式u+v>>2的值是()A. 0B. 3C. 5D. 729. 如果将文件指针fp指向文件末尾,正确的语句是()A. feof(fp);B. rewind(fp);C. fseek(fp,0L,0);D. fseek(fp,0L,2);30. 下面程序段中,不能..完成的功能是()FILE *fp;char ch =′v′;fp=fopen(″boy″, ″rb+″);fputc(ch,fp);A. 建立文件指针fp与文件boy的联系B. 从boy文件中读取一个字符C. 向boy文件中写一个字符D. 打开名为boy的二进制文件31.设有int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是()A.-4B.0C.1D.332.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d, b=%d″,&a,&b);4A.2<CR>B.a=2 b=3<CR>C.a=2, b=3<CR>D.2,3<CR> 3<CR>33.下面程序段的输出结果是()main( ){ int s, p;s=p=5;p=--s;p++;++p;printf(″%d\n″,p);}A.5B.6C.7D.834.关于if语句下面叙述正确的是()A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句35.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是()main( ){ int a,b,s;scanf(″%d″, &a,&b);s=a;if(a<b) s=bs=s*s;printf(″%d″,s);}A.9B.12C.16D.2536.若int x=0; 则while(x==0); 的循环次数是()A.0B.1C.2D.无限次37.下面程序段的输出结果是()for (i=1; i<3;i++){for (j=1;j<3;j++)printf(″%d ″, i+j);5printf(″\n″);}A.2 3 3 4B.2 3 4C.2 3D.23 4 3 438.下面程序的输出结果是()mian ( ){ int a[5]={2,4,6,8,10},i;i=2;printf(″%d″,a[i++]);}A.2B.4C.6D.839.下面程序的输出结果是()main( ){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int i,j,k=0;for(i=0;i<3;i++)k=k+a[i][0];printf(″%d\n″,k);}A.27B.33C.39D.4540.以下正确的函数定义形式是()A. double fun(int x, int y)B. double fun(int x; int y)C. double fun(int x, int y);D. double fun(int x, y);41.关于变量以下不正确...的说法是()A.在不同函数中可以使用相同名字的变量B.形式参数是全局变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量是局部变量42.设有语句int a[4][10],*p=*a;则下列表达式中不是..地址表达式的是()A.&a[1][2]B.a[3]C.*(p+1*10+2)D.p+1*10+243.下面关于结构体类型变量定义不正确...的是()A. struct scoreB. struct{ {6int math; int math;int Chinese; int Chinese;}Li, Wang; }Li, Wang;C. struct scoreD. struct score{ {int math; int math;int Chinese; int Chinese;}; };Li, Wang;struct score Li, Wang;44.下面各个运算符的优先级从左到右依次降低的是()A.& >> | ^B.~ & >>|C.>> & ^ |D.~ >> & ^45.设有说明:int u=1, v=2;表达式:u+v<<2的值是()A.-1B.1C.9D.1246.下面程序段中,不.能完成的功能是()FILE *fp;char ch;fp=fopen(″file1″, ″rb+″);ch=fgetc(fp);A.建立文件指针fp与文件file1的联系B.从file1文件中读一个字符C.向file1文件中写一个字符D.打开名为file1的二进制文件47.在格式:fread(stu,size,n,fp);中,下面说法不正确...的是()A.stu是内存中存放数据的首地址B.n表示读n次C.size是一个数据块的字节数D.fp表示文件指针48.字符串常数“CHINA”在内存中存储时占的字节数是()A.5个B.6个C.7个D.8个49.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c<d?c:d的值是()A.1 B.2 C.3 D.450.输出字符串的格式说明符是()78A .%cB .%sC .%uD .%g51.设有说明int x=0,y=0; 则执行if(x++)y=1+x;else y=2+x ; 后,变量y 的值是( ) A .0 B .1 C .2D .352.以下程序段所表示的数学函数关系是( ) y=-1if(x!=0) if(x>0) y=1;else y=0; A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x yB .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y53.执行下面程序段后,输出字符A 的个数是( ) for(i=0;i<=5;i+=2) printf(″A ″);A .0个B .3个C .5个D .6个54.若有定义char a[ ]= ″computer ″;则存储字符m 的数组元素是( ) A .a[1] B .a[2] C .a[3]D .a[4]55.若有定义int a [4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是( ) A .1 B .2 C .3D .412.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A .自动(auto ) B .静态(static ) C .外部(extern)D .寄存器(register )56.如果一个C 程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为( )A .源文件的全部范围B .本程序的全部范围C .本函数的全部范围D .从定义该变量的位置开始至本文件末尾57.下列定义中,不是..指针数组定义的是( ) A .int*p[5]; B .float*q[4]; C .int(*r)[6];D .char*w[7];58.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是( )A.a,point,*&a B.&*a,&a,*pointC.*&point,*point,&a D.&a,&*point,point59.下列程序的运行结果是()#difine N 9fun (char s[ ]){char*p=s+4,*q=s;int i;for(i=0;i<4;i+ +,p+ +,q + +){s[i]=*p;s[i+4]=*q}}main( ){char ss[N]= ″ABCDEFGH″;fun(ss)printf(″%s\n″,ss);}A.EFGHABCD B.EFGHEFGH C.ABCDEFGH D.ABCDABCD 60.设有结构体的定义如下:()struct cjd {long bh;int*q;char xm[9];};则sizeof(struct cjd)的值是A.14 B.15 C.16 D.1761.设有说明:int x=0x15,y=0x0f;则x&y的结果是()A.0x5 B.0x15 C.0xf0 D.0xf562.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是()A.#include<stdio.h> B.#include<math.h>C.#incLude<string.h> D.#incLude<malloc.h>63.由FILE*fp;fp=fopen(″a:\\abc.txt″,″r+″);可以推知fopen 函数的原型是()A.char *fopen(char,char);B.FILE*fopen(char*,char*);9C.int fopen (char*,char*); D.FILF fopen(char* ,char*);64.整数-2在机器内存中的表示是()A.1000000000000010 B.1111111111111110 C.11111111111111101 D.1111111111111111 65.下列运算符中优先级最低的是()A.> B.! C.% D.= =66.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是()A.-6 B.-5 C.-4 D.-367.以十进制无符号形式输出整数的格式说明符是()A.%u B.%x C.%o D.%d69.下列程序段的输出结果是()void main(void){iny y=1,x=5;if(x<0)y=-1;if(x>=0)y=0;printf("%d\n",y);}A.-1 B.0 C.1 D.569.执行如下程序段后,x的值是()int x=1,y=-1;if(y<0)x-=y;else x+=y;A.-1 B.0 C.1 D.270.执行while(表达式)循环的条件是()A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时71.下列程序段输出的结果是()for(i=1;i<3;i+ +)for(j=1;j<3;j+ +)10printf("%d",i+j);A.2 3 3 4 B.2 3 4C.2 3 D.23 4 3 472.若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是()A.1 B.2 C.3 D.473.下列关于C语言程序说法正确的是()A.C语言程序总是从有定义的函数起顺序执行B.在C语言程序中,被调用函数必须在main函数中定义C.C语言程序中的main函数必须放在程序的开始部分D.C语言程序总是从main函数起开始执行74.若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是()A.&a+1 B.&a+ + C.&a D.&a[i]75.下列关于结构体类型定义正确的是()A.struct ABC B.struct ABC{ {int a int a;char b char b;char*p char * p;} }C.struct ABC D.struct ABC{ {int a; int a,char b; char b,char * p; char *p,}; };76.下列位运算符中,表示按位异或操作的是()A.~ B.│C.^ D.&77.下列各个位运算符的优先级从左到右依次升高的是()A.>>│& ~B.│>> & ~C.│& >> ~D.~│& >>1178.设有说明:int u=1,v=3;则表达式u<<= v的值是()A.0 B.1C.3 D.879.如果文件存储的是数据在内存中存放的字节形式,则该文件是()A.ASCII文件B.文本文件C.二进制文件D.设备文件80.下列转义字符中,表示回车的是()A.\0 B.\n C.\r D.\f81.若定义double d;则d在内存中分配的字节数是()A.1个B.2个C.4个D.8个82.下列表达式中运算结果为3的表达式是()A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 83.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是()A.-6 B.-5 C.-4 D.-384.在printf语句中,格式说明符u表示()A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数85.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是()if(a<b){if(c= =d)x=c;}elsex=d++A.4 B.5 C.6 D.71286.关于switch中的表达式,正确的说法是()A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式87.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次88.只能在循环语句中用于结束本轮循环的语句是()A.break; B.continue; C.goto D.if89.若有定义int a[3][5];则数组a在内存中分配的字节数是()A.8 B.15 C.24 D.3090.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?()A.gets(strl) B.gets(strl,str2) C.getchar(strl)D.getchar(strl,str2)91.下列关于函数的描述中正确的是()A.C程序中有调用关系的所有模块必须放在同一个源文件中B.函数必须有返回值,否则不能使用函数C.C程序必须由一个或一个以上函数构成D.C函数既可以嵌套定义又可以嵌套调用92.设有下列程序,则()int d=10;main(){int a=3;printf(“%d,%d\n”,a,d);}A.a是全局变量,d是全局变量B.a是局部变量,d是全局变量C.a是全局变量,d是局部变量D.a是局部变量,d是局部变量1393.若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是()A.p1=m; B.&p2=n; C.pl=&m;p2=p1; D.*p1=&m; 94.下列为指针数组定义的是()A.float(*)[6]; B.float p[6]; C.float(*)(); D.float *p[6]; 95.设有说明:FILE*fp;对于fp=fopen(″c:\\abc.dat″,″rb″);语句,下列说法中不正确的是()A.fp将指向abc.dat文件B.以只读方式打开二进制文件C.打开文件的文件名是abc.datD.以读写方式打开ASCII码文件96.ASCII码文件的结束可以用符号常量EOF表示。

C语言程序设计各章练习题

C语言程序设计各章练习题

《C 语言程序设计》各章练习题2016年12月汇编第1-3章 C 语言基础、编程规范、顺序结构程序设计编程题1:设a 和b 均为int 型变量,编写一个程序,通过键盘读入a,b 的值,然后交换a,b 的值。

要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b 的值,交换后a,b 的值。

附加要求:(1)允许定义第3个变量,实现交换;(2)不允许定义第3个变量,实现交换。

第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。

编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。

编程题3:求 ax 2+bx+c=0方程的解。

(只输出b 2-4ac>=0的求解结果,小于0,输出“不予求解!”)第5章 循环结构程序设计编程题4:编程计算∑=ni i 1。

要求提示键盘输入n ,如n 为负数,不予计算,直接返回。

编程题5:编程序计算n !,要求n 从键盘输入,如n 小于0,不予计算。

编程题6:从键盘输入一个数n ,判断n 是否是素数。

编程题6:编写程序输出1~100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。

编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。

编程题8:求满足下列条件的三位数n,它除以11(整数相除)所得到的商等于n的各位数字的平方和,且其中至少有二位数字相同的数。

编程题9:有一些十进制整数对ab和cd具有如下特性:ab×cd=ba×dc,其中a≠b且c≠d。

如:12×42=21×24。

请编程找出30~50之间满足上述等式所有m,n值,并按上述等式的格式输出。

(×用*表示)编程题10:从键盘上输入一个整数,然后把这个整数的各位逆序输出。

例如,输入123456,输出654321。

第6章数组编程题11:有一个已排好序的数组int a[11]={-5,-3,0,6,8,12,16,28,66,88};,要求输入一个数后,按原来排序的规律将它插入数组中。

C语言程序设计教程第一章练习题题目(精选5篇)

C语言程序设计教程第一章练习题题目(精选5篇)

C语言程序设计教程第一章练习题题目(精选5篇)第一篇:C语言程序设计教程第一章练习题题目单选题1、下列语言中不属于计算机语言的三大类的是(C)。

A.机器语言 B.汇编语言 C.脚本语言 D.高级语言2、下列说法中不正确的是(C)A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级语言B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可移植等优点C.C语言属于汇编语言D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用3、以下开发工具中不属于主流的开发工具的是(B)A.Visual Studio B.Xcode C.Code::Block D.Eclipse4、下列选项是对主流开发工具的介绍,其中错误的是(B)A.Visual Studio支持C/C++、C#、F#、VB等多种程序语言的开发和测试B.Code::Block是一个免费的跨平台IDE,支持C、C++和Fortan程序的开发C.Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发D.Vim是一款功能非常强大的IDE(和其他IDE不同的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。

)5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是(A)A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序6、下列选项中,关于main()函数叙述不正确的是(C)A.一个完整的C语言程序中,有且只能有一个main()函数B.main()函数是程序的主入口,程序总是从main()函数开始执行C.如果没有声明main()函数,程序将从第1行开始执行D.main()函数可以有返回值,也可以没有返回值7、下面程序中,合法的选项是(D)A.#includeint main(){ printf(“hello worldn”);return 0;}B.#includeint man(){ printf(“hello worldn”);return 0;}C.#includeint main(){ printf(“hello worldn”)return 0;}D.#includeint main(){ print(“hello worldn”);return 0;}8、下面程序中,运行结果为“1,2”的是(A)A.#includeint main(){ int a = 1;int b = 2;printf(“%d %dn”,a,b);return 0;}B.#includeint main(){ int a = 1;int b = 2;printf(“%d,”a);printf(“%dn”,b);return 0;}C.#includeint main(){ int a = 1, b = 2;printf(“%d,%dn”,a,b);return 0;}D.#includeint main(){ int a = 1,a= b = 2;printf(“%d,%dn”,a,b);return 0;}9、下列关于注释的描述中,错误的是(B)A.C语言中的注释有两种类型:单行注释和多行注释B.所有的注释都可以嵌套使用C.单行注释用“//”符号表示,“//”后面为被注释的内容D.多行注释以符号“/*”开头,以符号“*/”结尾解析:在C语言中,有的注释可以嵌套使用,有的则不可以,例如:多行注释“/*…*/”中可以嵌套单行注释“//”;多行注释“/*…*/”中不能嵌套多行注释“/*…*/”。

c语言程序设计习题1-4章练习

c语言程序设计习题1-4章练习
3.下面程序执行后k的值为【5】。
int a=1,b=2,c=3,d=4,k;
k=a>b?a:c>d?c:d
4.已知:int a=5;则执行a+=a-=a*a;语句后,a的值为【6】。
5.下面程序的运行结果是x=【7】,y=【8】。
main( )
{ float x=4.9;int y;
y=(int)x;
char ch;
scanf("%c",&ch);
ch=(ch>=′A′&&ch<=′Z′)?(【1】):ch
printf("【2】\\n",ch);
2.下面程序段的执行结果是x=【3】,y=【4】。
inta=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d,y=%d",x,y);
B)11.000000,12.000000,13
C)11.0000000,12,13
D)11,12.000000,13
15.执行以下程序后x的值为【】。
unsigned int x=65535;
printf("%d\\n",x);
A) 65535B)1C)有错误D)-1
二、填空题
1.下面程序段的功能是输出大写字母对应的小写字母的ASCII码,请填空。
12.执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【】。
int x,y;
scanf("%d%d",&x,&y);
A)空格B)Tab键C)回车D)逗号
13.下面合法的语句是【】。

C语言程序设计阶段考试练习题(答案)

C语言程序设计阶段考试练习题(答案)

第 2页 共7 页(A )0 (B )1 (C )2(D )311. 以下正确的C语言标识符是( )。

(A )%x(B )a+b(C )a123(D )test !12. 下列字符序列中,不可用作C 语言标识符的是( )。

(A )abc123 (B )no.1 (C )_123_ (D )_ok13. 下列符号常量中非法的是( )。

(A )’\a’(B )’b’(C )’\’(D )’3’14. 在C 语言中,不同的类型数据混合运算时,要先转换成同一类型后进行运算。

设一表达式中包含有int 、long 、unsigned 和char 类型的变量和数据,则表达式最后的运算结果是( )类型数据。

(A )int(B )char(C )unsigned(D )long15. 如下程序的执行结果是( )。

{ int n=1; printf(“%d %d %d \n”,n, n++,n --);} (A )1 1 1 (B )1 0 1(C )1 1 0(D )1 2 116. 有如下程序:int a1,a2; c har c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);正确的输入是( )。

(A )10A 20B<CR> (B )10 A 20 B<CR> (C )10 A20B<CR> (D )10A20 B<CR> 17. 有如下程序: scanf(“a=%d,b=%d,c=%d”,&a,&b, &c);若要求a,b,c 的值分别为1,3,2,正确的输入是( )。

(A )132<CR> (B )1,3,2<CR>(C )a=1,b=3,c=2<CR> (D )a=1 b=3 c=2<CR>18.与数学式子129 x x n对应的C 语言表达式是( )。

C语言程序设计基础知识 习题一及参考答案

C语言程序设计基础知识 习题一及参考答案

第一章:程序设计基础知识一、单项选择题1、以下( )是面向过程的程序设计语言。

A)机器语言B)汇编语言C)高级语言D)第四代语言2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。

A)设计数据结构和算法B)建立数学模型C)编写程序D)调试和运行程序3、以下常用算法中适合计算等差级数的算法是( )。

A)枚举法B)递推法C)分治法D)排序法4、以下不属于算法基本特征的是( )。

A)有穷性B)有效性C)可靠性D)有一个或多各输出5、以下描述中不正确的是( )。

A)程序就是软件,但软件不紧紧是程序。

B)程序是指令的集合,计算机语言是编写程序的工具。

C)计算机语言都是形式化的语言,它有一个语法规则和定义。

D)计算机语言只能编写程序而不能表示算法。

6、下面描述中,正确的是( )A)结构化程序设计方法是面向过程程序设计的主流。

B)算法就是计算方法。

C)一个正确的程序就是指程序书写正确。

D)计算机语言就是编写程序的工具而不是表示算法的工具。

7、下面描述中,不正确的是( )。

A)递归法的关键是必须有一个递归终止的条件。

B)递归算法要求语言具有反复自我调用子程序的能力。

C)对于同一个问题,递推算法比递归算法的执行时间要长。

D)递推算法总可以转换为一个递归算法。

8、N-S图与传统流程图比较,主要优点是( )。

A)杜绝了程序的无条件转移。

B)具有顺序、选择和循环三种基本结构。

C)简单、只管。

D)有利于编写程序。

A)B)C)D)二、填空题1、在流程图符号中,判断框中应该填写的的是________。

(判断条件)2、结构化程序设计是__________应遵循的方法和原则。

(面向过程编程)3、结构化程序必须用__________程序设计语言来编写。

(具有结构化控制语句)4、可以被连续执行的一条条指令的集合称为计算机的________。

(程序)5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。

第1部分_C语言程序设计练习一

第1部分_C语言程序设计练习一

《C语言程序设计》练习一一、单项选择题1.下面转义字符中,表示字符串结束的是()A.\ rB.\ nC.\ 0D.\ f2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是()A.1个B.2个C.4个D.8个3.设有int x=2,y,z;执行z=y=x--;后,变量z的值是()A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是()A.%uB.%ldC.%xD.%o5.下面合法的if语句是()A.if(a=b) c++;B.if(a=<b) c++;C.ifi(a< >b) c++;D.if(a=>b) c++;6.结束while(表达式)循环的条件是()A.当表达式的值为0时B.当表达式的值不为0时C.当表达式的值为1时D.当表达式的值为非1时7.下面列出的位运算符中,表示按位与操作的是()A.~B.&C.^D.|8.设有说明:int x=0x03,y=3;表达式x&~y的值是()A.0B.1C.2D.39. 设有int a=3, b=-4, c=5;表达式(a<b)? a+b:(a-b,b+4,a-=b+4)的值是()A. –1B. 0C. 3D. 710. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d b=%d″,&a, &b);A. 2<CR>B. a=2 b=3<CR>C. a=2, b=3<CR>D. 2,3<CR>3<CR>11. 下列if语句中,有语法错误..的是()A. if(x>y);B. if(x=y) x+y;C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)D. if(x<y) {x++; y++;}12. 下面程序段执行后的输出结果是()int i=-1;if(i<=0) printf(″* * * * \n″);else printf(″%%%%\n″);1A. ****B.%%%%C. %%%%cD. ****c13. 下面程序段的循环次数是()int k=2;while(k==0) printf(″%d″,k);k--; printf(″\n″);A. 0次B. 1次C. 2次D. 无限次14. 下面各个位运算符的优先级从左到右依次升高的是()A. | ^ & >>B. ^ >> & ~C. << | ^ ~D. ~ | & >>15. 设有说明:int u=1, v=14;表达式u+v>>2的值是()A. 0B. 3C. 5D. 716.设有int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是()A.-4B.0C.1D.317.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d, b=%d″,&a,&b);A.2<CR>B.a=2 b=3<CR>C.a=2, b=3<CR>D.2,3<CR> 3<CR>18.关于if语句下面叙述正确的是()A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句19.若int x=0; 则while(x==0); 的循环次数是()A.0B.1C.2D.无限次20.下面各个运算符的优先级从左到右依次降低的是()A.& >> | ^B.~ & >>|C.>> & ^ |D.~ >> & ^21.设有说明:int u=1, v=2;表达式:u+v<<2的值是()A.-1B.1C.9D.1222.字符串常数“CHINA”在内存中存储时占的字节数是()A.5个B.6个C.7个D.8个23 23.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c<d?c:d 的值是( )A .1B .2C .3D .424.输出字符串的格式说明符是( )A .%cB .%sC .%uD .%g25.设有说明int x=0,y=0;则执行if(x++)y=1+x;else y=2+x ;后,变量y 的值是( )A .0B .1C .2D .326.以下程序段所表示的数学函数关系是( )y=-1if(x!=0) if(x>0) y=1;else y=0;A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x y B .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y27.执行下面程序段后,输出字符A 的个数是( )for(i=0;i<=5;i+=2)printf(″A ″);A .0个B .3个C .5个D .6个28.设有说明:int x=0x15,y=0x0f ;则x&y 的结果是( )A .0x5B .0x15C .0xf0D .0xf529.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是() A .#include<stdio.h> B .#include<math.h>C .#incLude<string.h>D . #incLude<malloc.h>30.整数-2在机器内存中的表示是( )A .1000000000000010B .1111111111111110C .11111111111111101D .111111111111111131.下列运算符中优先级最低的是( )A .>B .!C .%D .= =32.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是()A.-6 B.-5 C.-4 D.-333.以十进制无符号形式输出整数的格式说明符是()A.%u B.%x C.%o D.%d34.执行while(表达式)循环的条件是()A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时35.下列位运算符中,表示按位异或操作的是()A.~ B.│C.^ D.&36.下列各个位运算符的优先级从左到右依次升高的是()A.>>│& ~B.│>> & ~C.│& >> ~D.~│& >> 37.设有说明:int u=1,v=3;则表达式u<<= v的值是()A.0 B.1C.3 D.838.下列转义字符中,表示回车的是()A.\0 B.\n C.\r D.\f39.若定义double d;则d在内存中分配的字节数是()A.1个B.2个C.4个D.8个40.下列表达式中运算结果为3的表达式是()A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 41.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是()A.-6 B.-5 C.-4 D.-342.在printf语句中,格式说明符u表示()A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数43.关于switch中的表达式,正确的说法是()A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式444.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次45.只能在循环语句中用于结束本轮循环的语句是()A.break; B.continue; C.goto D.if46.下列是合法C语言常量的是()A. eB. 7E4.0C. E4D. -9.13E-3047.设有int a=3,b=-4,c=5;表达式(a<b)?a:b&&c<0的值是()A. 0B. 1C. 3D. 448.以指数形式输出实型数的格式说明符是()A. %uB. %xC. %fD. %e49.下列各个位运算符的优先级从左到右依次降低的是()A. | & ˆ > >B.ˆ & > > |C. ~> > ˆ |D. ~> > | ˆ50.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是()A. 3B. 5C. 6D. 851.在Turbo C 2.0中,若定义char ch;则变量ch在内存中分配的字节数是()A.1个B.2个C.4个D.8个6<CR>52.下面程序段的输出结果是()main(){int a=2,b=5;printf(″a=%d%%,b=%d%%″,a,b);}A.a=2,b=5B.a=2%,b=5%C.a=%2,b=%5D.a=%d,b=%d53.设有条件表达式(exp)? a++:b--,则下列表达式中能够与该表达式完全等价的表达式是()A.(exp!=0)? a++∶b--B.(exp==0)? a++∶b--C.(exp==1)? a++∶b--D.(exp!=1)? a++:b--54.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是()A.表达式1B.表达式2C.表达式3D.表达式l和表达式355.设有int x=2,y,z;执行z=y=x——;后变量y的值是()A.0B.1C.2D.356.在下列选项中,没有构成死循环的程序段是()A.int i=100;B.for(;;);while(1){ i=i%100+1;if(i>100)break;}5C.int k=1000;D.int s=36;do{++k;}while(k>10000);while(s);一一s;57.设有说明:int u=l,v=3,w=5;表达式:u<<=(v|w)的值是()A.1B.5C.13D.12858.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是()A.0B.1C.3D.559. 下面程序段的输出结果是()main(){ int s, p;s=p=5;p=++s;p++; ++p;printf(″%d\n″,p);}A. 5B. 6C. 7D. 860. 下面程序段的输出结果是()a=100;while(a>120);a=a+1;printf(″%d″,a);A. 100B. 101C. 120D. 12161.下面程序段的输出结果是()main( ){ int s, p;s=p=5;p=--s;p++;++p;printf(″%d\n″,p);}A.5B.6C.7D.862.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是()main( )6{ int a,b,s;scanf(″%d″, &a,&b);s=a;if(a<b) s=bs=s*s;printf(″%d″,s);}A.9B.12C.16D.2563.下面程序段的输出结果是()for (i=1; i<3;i++){for (j=1;j<3;j++)printf(″%d ″, i+j);printf(″\n″);}A.2 3 3 4B.2 3 4C.2 3D.23 4 3 4 64.下列程序段的输出结果是()void main(void){int y=1,x=5;if(x<0)y=-1;if(x>=0)y=0;printf("%d\n",y);}A.-1 B.0 C.1 D.5 65.执行如下程序段后,x的值是()int x=1,y=-1;if(y<0)x-=y;else x+=y;A.-1 B.0 C.1 D.2 66.下列程序段输出的结果是()for(i=1;i<3;i+ +)for(j=1;j<3;j+ +)7printf("%d",i+j);A.2 3 3 4 B.2 3 4C.2 3 D.23 4 3 467.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是()if(a<b){if(c= =d)x=c;}elsex=d++A.4 B.5 C.6 D.768.下列程序的输出结果是()main( ){ int x=5,y;if(x<0)y=-1;if(x==0)y=0;y=1;p rintf(″%d″,y);}A. -5B. -1C. 0D. 169.下列程序段的输出结果是()i=1;while(i<3){j=1;while(j<=i){ printf(″%d″,i+j);j++;}i++;printf(″\n″);}A. 2 3 3 4B. 2 3 4C. 2 3D.23 4 3 4870.设有下列程序:()#include″stdio.h″main( ){unsigned x=8,y=2;printf(″%d\n″,y|~(x&y));}该程序的运行结果是A. -1B. 0xffC.127D. 6553571.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()void main(void){int x;scanf("%d",&x);if(x + + >5)printf("%d",x);else printf("%d\n",x——);}A.7和5B.6和3C.7和4D.6和472.设有下面程序:# include"stdio.h"void main(void){unsigned x=1,y=3,z=5;printf("%d\n",z^x&y);}该程序的运行结果是()A.0B.3C.4D.59。

国家开放大学C语言程序设计章节测试参考答案

国家开放大学C语言程序设计章节测试参考答案

国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。

(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。

(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。

(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。

(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。

(√)3.C语言中使用的字符常量,其起止标记符是()。

a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。

a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。

a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。

a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。

a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。

a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。

a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。

a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。

a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。

a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。

C语言程序设计阶段考试练习题(答案)

C语言程序设计阶段考试练习题(答案)

.考试科目:计算机程序设计基础考试时间:一、单项选择题(每小题1分,共30分)1.一个C程序的执行是从()。

(A)main()函数开始,直到main()函数结束(B)第一个函数开始,直到最后一个函数结束(C)第一条语句开始,直到最后一条语句结束(D)main()函数开始,直到最后一个函数结束2.在C语言程序中,main()的位置()。

(A)必须作为第一个函数(B)必须作为最后一个函数(C)可以任意(D)必须放在它所调用的函数之后3.一个C语言程序是由()。

(A)一个主程序和若干个子程序组成(B)一个或多个函数组成(C)若干个过程组成(D)若干个子程序组成4.下列说法中,错误的是()。

(A)每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号(B)每个函数都有一个函数头和一个函数体,主函数也不例外(C)主函数只能调用用户函数或系统函数,用户函数可以相互调用(D)程序是由若干个函数组成的,但是必须有、而且只能有一个主函数5.下列符号中,不属于转义字符的是()。

(A)\\ (B)\0xAA(C)\t (D)\06.C语言源程序的基本单位是()。

(A)过程(B)函数(C)子程序(D)标识符7.以下结果为整数的表达式是()。

(设有inti;char c; float f;)(A)i+f (B)i*c(C)c+f (D)i+c+f8.设有char ch; 以下不正确的赋值语句是()。

(A)ch=’123’;(B)ch=’\xff’;(C)ch=’\08’;(D)ch=”\”;9.逗号表达式(a=3*5,a*4), a+15的值是()。

a的值是()。

①(A)15 (B)60 (C)30 (D)不确定②(A)60 (B)30 (C)15 (D)9010.设int a=2,b,c; 则执行c=b=a――;语句后,a 的结果是(B )。

b的结果是(C)。

c的结果是(C)。

第 2页 共7 页(A )0 (B )1 (C )2(D )311. 以下正确的C语言标识符是( )。

C语言专升本1单项选择题(3月10日终版)

C语言专升本1单项选择题(3月10日终版)

计算机程序设计基础(C语言)单项选择练习题一、基本概念1. C语言程序是由构成的。

A)一些可执行语言 B)main函数C)函数 D)包含文件中的第一个函数2. 是构成C语言程序的基本单位。

A)函数 B)过程 C)子程序 D)子例程3.C语言可执行程序从开始执行。

A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数4.C语言程序从main()函数开始执行,所以这个函数要写在____。

A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置5. 以下说法中正确的是。

A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main( )函数中定义C)C语言程序总是从main( )函数开始执行D)C语言程序中的main( )函数必须放在程序的开始部分6. 下列方法中错误的是。

A)主函数可以分为两个部分:主函数说明部分和主函数体。

B)主函数可以调用任何非主函数的其它函数。

C)任何非主函数可以调用其它任何非主函数。

D)程序可以从任何非主函数开始执行。

7.下列关于C语言的说法错误的是。

A) C程序的工作过程是编辑、编译、连接、运行B) 标识符的命名由英文字母、数字和下划线组成,与字母的大小写无关C) C程序的三种基本结构是顺序、选择、循环D) 一个C程序总是从main函数开始执行的8. 系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才能运行。A) 编辑、编译 B )编辑、连接 C) 编译、连接 D) 编辑、改错9.下列说法中正确的是。

A)由于C源程序是高级语言程序,因此一定要在TC软件中输入。

B)由于C源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑的软件中输入。

C)由于C程序是高级语言程序,因此输入后即可执行。

D)由于C程序是高级语言程序,因此它是由命令组成的。

C语言设计(本)阶段练习一

C语言设计(本)阶段练习一

1–练习1(本)C 语言设计阶段练习一 (本科)(第1章——第5章)一、根据题目要求解答问题(1) 将数学式yx )y x (8log ⨯+转换成算术表达式。

lg(x+y)/lg(8)/(x*y)(2) 设:float x; 请分别写出描述实数 x 的小数部分和整数部分的算术表达式。

整数部分:(int)x 小数部分:x-(int)x(3) 用逻辑表达式描述下面函数的定义域。

3x x log )x (f -= x>0 && x!=3(4) 写出整型变量x 界于整数a 、b 之间,但a 不一定小于b 的逻辑表达式。

x>abs(a) && x<abs(b)(5) 使用二进制位运算表达式,实现将x 变量清零。

x^x 或 x&(~x)(6) 用一个条件表达式改写下面的多边选择语句,功能不变。

if(a>0) x=1.6;else if(a>-10) x=3.3;else x=-5.2;x=a>0? 1.6 : x>-10?3.3 : -5.2;二、阅读程序,写出运行结果,再上机调试验证。

(1) #include <stdio.h>main( ){ int x=29; char c=’B ’;printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n",x,x,x,x);printf("ASCII:%c,dec:%d,oct:%o,hex:%x\n",c,c,c,c);printf("c='\%c\'\n",c+10);}dec:29,oct:35 , hex:1d ,unsigned:29ASCII:B ,dec:66, oct:102, hex:42c='L'(2) #include <stdio.h>#include <math.h>main( ){ int x,a,b,c;printf("input x:");scanf("%d",&x); /* 假设输入153 */a=x/100;b=(x-a*100)/10;c=x%10;if(x==pow(a,3)+pow(b,3)+pow(c,3))printf("%d is daffodil number!\n",x);elseprintf("%d isn't daffodil number!\n",x);}153 is daffodil number!(3) #include <stdio.h>main(){ int sum=0,a,b;do{ scanf("%d%d",&a,&b);switch(a){ case 1: sum+=b;break;case 2: sum-=b;break;}} while(a!=0);printf("sum=%d\n",sum);}假设程序运行时循环输入下列四组数据:1 1002 203 500 0sum=80(4) #include <stdio.h>main(){ int i=0,s=0;do{ if(i%2){ i++;continue;2–练习1(本)}i++;s+=i;} while(i<7);printf("%d\n",s);}16三、阅读程序说明,在划线处填空,实现程序的预期功能。

c语言程序设计专升本练习题

c语言程序设计专升本练习题

c语言程序设计专升本练习题### C语言程序设计专升本练习题#### 一、选择题1. 在C语言中,下面哪个选项是正确的数据类型?A. 整型 intB. 浮点型 floatC. 字符型 charD. 所有选项都是正确的2. 下面哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 所有选项都是正确的3. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. length_of()#### 二、填空题1. 在C语言中,定义一个整型变量 `x`,并初始化为10,正确的语句是:`int x = _____;`2. 如果要输出一个浮点数 `y` 的值,并且保留两位小数,可以使用以下语句:`printf("%_____f", y);`3. 在C语言中,表示逻辑“与”的运算符是:`_____`#### 三、编程题1. 编写一个C语言程序,计算并输出1到100之间所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0, i;for (i = 2; i <= 100; i += 2) {sum += i;}printf("The sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现字符串的逆序输出。

```c#include <stdio.h>#include <string.h>int main() {char str[100], reversed[100];int i, len;printf("Enter a string: ");gets(str);len = strlen(str);for (i = 0; i < len; i++) {reversed[i] = str[len - 1 - i];}reversed[len] = '\0';printf("Reversed string: %s\n", reversed);return 0;}```#### 四、简答题1. 简述C语言中数组和指针的区别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1–练习1(本)C 语言设计阶段练习一 (本科)(第1章——第5章)一、根据题目要求解答问题(1) 将数学式yx )y x (8log ⨯+转换成算术表达式。

答:lg(x+y)(2) 设:float x; 请分别写出描述实数 x 的小数部分和整数部分的算术表达式。

答:整数部分:(int)x 小数部分:x-(int)x(3) 用逻辑表达式描述下面函数的定义域。

3x x log )x (f -= 答: x>0 && x!=3(4) 写出整型变量x 界于整数a 、b 之间,但a 不一定小于b 的逻辑表达式。

答: x>abs(a) && x<abs(b)(5) 使用二进制位运算表达式,实现将x 变量清零。

答: x^x 或 x&(~x)(6) 用一个条件表达式改写下面的多边选择语句,功能不变。

if(a>0) x=1.6;else if(a>-10) x=3.3;else x=-5.2;答: x=a>0? 1.6 : x>-10?3.3 : -5.2二、阅读程序,写出运行结果,再上机调试验证。

(1) #include <stdio.h>main( ){ int x=29; char c=’B ’;printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n",x,x,x,x);printf("ASCII:%c,dec:%d,oct:%o,hex:%x\n",c,c,c,c);printf("c='\%c\'\n",c+10);}答:dec:29,oct:35 , hex:1d ,unsigned:29ASCII:B ,dec:66, oct:102, hex:42c='L'(2) #include <stdio.h>#include <math.h>main( ){ int x,a,b,c;printf("input x:");scanf("%d",&x); /* 假设输入153 */a=x/100;b=(x-a*100)/10;c=x%10;if(x==pow(a,3)+pow(b,3)+pow(c,3))printf("%d is daffodil number!\n",x);elseprintf("%d isn't daffodil number!\n",x);}答: 153 is daffodil number(3) #include <stdio.h>main(){ int sum=0,a,b;do{ scanf("%d%d",&a,&b);switch(a){ case 1: sum+=b;break;case 2: sum-=b;break;}} while(a!=0);printf("sum=%d\n",sum);}假设程序运行时循环输入下列四组数据:1 1002 203 500 0答: sum=80(4) #include <stdio.h>main(){ int i=0,s=0;do{ if(i%2){ i++;continue;}i++;s+=i;} while(i<7);2–练习1(本)printf("%d\n",s);}答: 16三、阅读程序说明,在划线处填空,实现程序的预期功能。

1.以下程序接收从键盘输入的字符串直到按<Ctrl>+Z键为止,输入的字符被原样输出到屏幕上,但若有连续的一个以上的空格时只输出一个空格。

#include <stdio.h>main(){ char cx, found='\0';while(( cx=getchar )!=EOF) /* EOF代表按<Ctrl>+Z键 */{ if(cx!=' ')putchar(cx);if(cx==' '&& found!=‘’ )putchar(cx);found= cx ;}}2.循环输入整数直到输入0为止,逆序输出整数中的每一位数字。

例如,输入273,则输出3 7 2;输入-108,则输出8 0 1 -。

#include <stdio.h>#include <math.h>main( ){ int x; long num,t;scanf("%ld",&num);while( num!=0 ){ t=abs(num);do{ x= t % 10 ;printf("%d ",x);}while((t=t/10)>0);if(num<0) printf("-") ;scanf("%ld",&num);}}3.用switch结构编写程序,对输入的一个百分制成绩,输出成绩的等级:90分以上为A级,80-89分为B级,70-79分为C级,60-69分为D级,低于60分为E级。

#include <stdio.h>main( ){ int score;scanf("%d",&score);3–练习1(本)if(score<0 ||score>100 ){ printf("input error!");exit(0);}switch( score/10 ){ case 10:case 9: printf("A\n");break;case 8: printf("B\n");break;case 7: printf("C\n");break;case 6: printf("D\n");break;default: printf("E\n");}}4.下列程序的功能是打印用“奇数”构成的三角形,行数n由键盘输入。

若n为5时,程序将在屏中心输出如下形式的三角形图案。

13 57 9 1113 15 17 1921 23 25 27 29#include <stdio.h>main(){ int i,j,n,k;scanf("%d",&n);for(k=-1,i=1; i<=n ;i++){ for(j=1;j<=40;j++) /* 在每一行左端输出40个空格,使图形印在屏幕中心 */ printf("%c",' ');for(j=1; j<=2*i-1 ;j+=2)printf("%-4d", k=k+2 );printf("\n");}}四、程序改错根据题意,修改程序中的错误(每个程序有3个错误,#标识的为行号),使之能输出正确的结果。

请不要增行或删行,并以“# 正确内容”的形式写出正确答案。

1.以下程序的功能是找出一个大于给定整数 m 、而且紧随 m 的素数。

例如,设m=50,则程序输出素数53。

#1 #include <stdio.h>#2 main()#3 { int i, k, m;4–练习1(本)#4 scanf("%d",m);#5 for(i=m+1; ;i++)#6 { for(k=2; k<i; k++)#7 if(i%k=0) break ;#8 if(k<i) printf("%d\n",i) ;#9 }#10 }答: #4 scanf("%d",&m);#7 if(i%k==0) break;#8 if(k==i) printf("%d\n",i);2.以下程序的功能是猜商品的价格,当用户输入自己估计的价格后,程序判断其正确性,允许猜3次,当预估价与真实价的差值在10元以内就算才猜对。

#1 #include <stdio.h>#2 #include <math.h>#3 main()#4 { float price,value; int i=0;#5 printf("请主持人输入商品的实际价格\n");#6 scanf("%f",&price);#7 for(;;)#8 { i++;#9 if(i>3) printf("很遗憾,你输了!\n");#10 printf("请观众输入第%d次预估价:",i);#11 scanf("%f",&value);#12 if((value-price)>10)#13 if(value<price)#14 printf("低了!\n");#15 else#16 printf("高了!\n");#17 else#18 printf("恭喜你,猜对了!\n");#19 }#20 }答: #9 if(i>3){ printf("很遗憾,你输了!\n"); break;}#12 if(fabs(value-price)>10)#15 else if(value>price)5–练习1(本)。

相关文档
最新文档