❶ c语言中的指针类型属于原子类型还是结构类型
c语言中数据类型可分为原子类型和结构类型两大类,而整型、字符型、指针、枚举值、逻辑值都属于原子类型
❷ 用C语言写找到原子距离小于2A的原子对,原子对要求:不在同一个氨基酸上而且不
C语言具体代码如下图。
❸ C语言计算原子量
/*
只有C H O N元素
C 12。01 H 1。008 O 16。00 N 14。01
输入C6H5OH
输出94.108
*/
#include<stdio.h>
int main()
{
printf("请输入化学式:\n");
char c;
int count_c=0,count_h=0,count_o=0,count_n=0;
double mass=0.0;
int count=0;
scanf("%c",&c);//读取第一个字符
while(c!='\n') //读取字符直到回车
{
switch (c) { //处理四种情况,四种元素
case 'C': //C元素
scanf("%c",&c); //读取下一个字符
if((c>='0')&&(c<='9'))//如果下一个是数字则准备读该数字否则准备该元素加一
count=0;
else count=1;
while((c>='0')&&(c<='9'))//读取元素符号后面的数字
{
count=count*10+(c-'0');
scanf("%c",&c);
}
count_c+=count;//累加该种元素
break;
case 'H':
scanf("%c",&c);
if((c>='0')&&(c<='9'))
count=0;
else count=1;
while((c>='0')&&(c<='9'))
{
count=count*10+(c-'0');
scanf("%c",&c);
}
count_h+=count;
break;
case 'O':
scanf("%c",&c);
if((c>='0')&&(c<='9'))
count=0;
else count=1;
while((c>='0')&&(c<='9'))
{
count=count*10+(c-'0');
scanf("%c",&c);
}
count_o+=count;
break;
case 'N':
scanf("%c",&c);
if((c>='0')&&(c<='9'))
count=0;
else count=1;
while((c>='0')&&(c<='9'))
{
count=count*10+(c-'0');
scanf("%c",&c);
}
count_n+=count;
break;
default:
printf("error;bad input\n");
break;
}//end switch
}//end while
//printf("C%dH%dO%dN%d\n",count_c,count_h,count_o,count_n);
mass=12.01*count_c+1.008*count_h+16.00*count_o+14.01*count_n;//计算总质量
printf("mass:%lf\n",mass);//输出总质量
system("pause");//暂停等待用户继续
}
❹ c语言程序,多线程对同一int变量进行读写,是否需要加锁(貌似java中这是原子操作,不必加锁)
如果变量是总线程,也就是多线程都对该int进行读写,就要加锁……
❺ C语言的赋值语句是不是原子操作
1.时钟周期:微处理器执行指令的最小时间单位,又称T状态。它通常与微机的主频有关。
2.总线周期:CPU对存储器或I/O端口完成一次读/写操作所需的时间。如8086微处理器的基本总线周期由四个时钟周期T1~T4组成,80486微处理器的基本总线周期由T1和T2两个时钟周期组成。当外设速度较慢时,可插入等待周期Tw。
3.指令周期:CPU执行一条指令所需要的时间。指令周期由若干个总线周期组成,不同指令执行的时间不同。同一功能的指令,在寻址方式不同时,所需要的时间也不同。
❻ C语言赋值语句是不是原子操作
看情况。
a = b 不是,因为要先寻址读 b 的值。
a = 1 可以认为是,因为可以直接赋值。
又及:
a++ 这类型不是一般赋值语句,在复杂指令集 cpu 下可能为原子操作,但是至少在精简指令集肯定为非原子操作。得看你 C 语言编译出来的东西跑在哪个环境了。
❼ C语言多线程里的i++ 和i--是原子操作吗
绝对不是,绝对不是
原子操作是指 一句汇编指令。但是 i++是指 i 先被使用虽然咱们这里并没有使用,但实际上会被 临时存储下来。然后i=i+1。
所以算2句
❽ c语言 什么数据类型能使变量赋任何值
这个不可能!
设计的问题必须要有一个范围,如果一般的变量不能存储你的数据,那么你就得按照一定的方法去做一个改造,比如,int型数据是4字节表示,而你要表示更大的数,那么可以定义一种8字节的数据类型来,如果还不够大的话,你可以定义一种16字节的数据类型,但这种类型的数据可能需要你做一些处理才能像普通的数据类型一样进行各种运算或存储!
❾ c语言enum是什么意思
enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。
C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。
例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。
(9)c语言原子变量扩展阅读
c语言enum的定义
publicenumPersonnel{
小明,小红,小蓝;
}
//扩展一下
publicenumPersonnel{
小明("男",21,86),
小红("女",22,55),
小蓝("男",23,73);
privateStringsex;
privateintage;
privateintresult;
}
//在扩展一下重写小红的isPass方法重写下toString并带上构造getset不贴了
publicenumPersonnel{
小明("男",21,86),
小红("女",22,55){
@Override
publicbooleanisPass(){
returnfalse;
}
},
小蓝("男",23,73);
privateStringsex;
privateintage;
privateintresult;
/*构造*/
privatePersonnel(Stringsex,intage,intresult){
this.sex=sex;
this.age=age;
this.result=result;
}
@Override
publicStringtoString(){
returnthis.name()+"性别:"+this.getSex()+"年龄:"+this.getAge()+"成绩为:"+this.getResult();
}
}
❿ 急求C语言编程
/*
============================================================================
Name:C_test.c
Author:
Version:
Copyright:Yourrightnotice
Description:HelloWorldinC,Ansi-style
============================================================================
*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
intmain(void){
chars[10];
inta[5];
inti;//循环变量
inta_=0;//a数组下标变量
intΩ;//最后计算出的结果
gets(s);
for(i=1;i<=10;i=i+2){
a[a_]=s[i]-48;
a_++;
}
Ω=(2*(a[0]+a[4])+2-a[4]-(a[1]+a[3]))/2;
printf("Ω=%d ",Ω);
puts("end");
returnEXIT_SUCCESS;
}